@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.
- package/LICENSE +21 -21
- package/components/index.d.ts +0 -0
- package/components/index.js +1 -1
- package/components/p--BbMiBIf.js +1 -0
- package/components/p-4BROAJ-M.js +1 -0
- package/components/p-9T3IQVUX.js +1 -0
- package/components/p-B1Y8S28h.js +1 -0
- package/components/p-B5VsEsBC.js +1 -0
- package/components/p-B7SdFSQT.js +1 -0
- package/components/p-B97Hj_bs.js +1 -0
- package/components/p-BBTo0Tfc.js +1 -0
- package/components/p-BCuFZ3xx.js +1 -0
- package/components/p-BFPoQ179.js +1 -0
- package/components/p-BGNOiTqa.js +1 -0
- package/components/p-BLqwG7xa.js +1 -0
- package/components/p-BPaLHj9P.js +1 -0
- package/components/p-BQtB82ld.js +1 -0
- package/components/p-BSLE4EQn.js +1 -0
- package/components/{p-DcRlYBIl.js → p-BUXxKr3t.js} +1 -1
- package/components/p-BYCebYZT.js +1 -0
- package/components/p-BZdNMS4e.js +1 -0
- package/components/p-BgCjF74f.js +1 -0
- package/components/p-BhWqNJhk.js +1 -0
- package/components/p-BlvrLhyv.js +1 -0
- package/components/p-BnnNgLpE.js +1 -0
- package/components/p-BoPZ9Se8.js +1 -0
- package/components/p-BogEYBiK.js +1 -0
- package/components/p-Brr9Q7gj.js +1 -0
- package/components/p-BvOnPBRo.js +1 -0
- package/components/p-BzX-LA7W.js +1 -0
- package/components/p-C-KgrbKX.js +1 -0
- package/components/{p-CfhgoXyB.js → p-C-rau5Ex.js} +1 -1
- package/components/{p-B4R9Mtmk.js → p-C1PUbETy.js} +1 -1
- package/components/p-C1_JmoB8.js +1 -0
- package/components/{p-noTpj1Kh.js → p-C3Kx_-Wc.js} +1 -1
- package/components/p-CIOnWzKr.js +1 -0
- package/components/p-CXhCHTJf.js +1 -0
- package/components/p-CaJOfbTg.js +1 -0
- package/components/p-Cf_74fjT.js +1 -0
- package/components/{p-DVz50Dd3.js → p-CgLn4Y4c.js} +1 -1
- package/components/p-CgaLhv3u.js +1 -0
- package/components/{p-CGYOWZnh.js → p-CijqjTOk.js} +1 -1
- package/components/p-CkyEMR2k.js +1 -0
- package/components/{p-Ce32Mo_Q.js → p-CmfyRJYt.js} +1 -1
- package/components/p-CnPsn8zN.js +1 -0
- package/components/p-Cp3SPBy3.js +1 -0
- package/components/p-CsYh9t-z.js +1 -0
- package/components/{p-BM-ap7lt.js → p-CtFbsd8j.js} +1 -1
- package/components/p-Cuf33Rgj.js +1 -0
- package/components/p-CwNmnRmr.js +1 -0
- package/components/p-CxMQkHjk.js +1 -0
- package/components/p-CzErFq8K.js +1 -0
- package/components/p-CzjK_fJj.js +1 -0
- package/components/p-D4Joi-Km.js +1 -0
- package/components/p-D4am7l6X.js +1 -0
- package/components/p-D7kqIlVo.js +1 -0
- package/components/p-DFzUUEiS.js +1 -0
- package/components/p-DINdyuGa.js +1 -0
- package/components/p-DIZuWptV.js +1 -0
- package/components/p-DPo53FC8.js +1 -0
- package/components/p-DPt8hDp3.js +1 -0
- package/components/p-DSC5zsOB.js +1 -0
- package/components/{p-Co3Y9VjQ.js → p-DSa1uqPO.js} +1 -1
- package/components/p-DT7-VE44.js +1 -0
- package/components/p-DTPUsC3Q.js +1 -0
- package/components/p-DUjF0MeP.js +1 -0
- package/components/p-DXMO8s1V.js +1 -0
- package/components/p-DZtvVtvb.js +1 -0
- package/components/p-D_184xNl.js +1 -0
- package/components/p-D_hKBumm.js +1 -0
- package/components/p-Da7AZprv.js +1 -0
- package/components/p-DcqkhKqy.js +1 -0
- package/components/p-Dkga4pDL.js +1 -0
- package/components/p-Dn1c0e9W.js +1 -0
- package/components/p-DobuHW4v.js +1 -0
- package/components/{p-Cd919NAP.js → p-DtIk7IPf.js} +1 -1
- package/components/p-DwySgZYx.js +1 -0
- package/components/p-DynL8Hj8.js +1 -0
- package/components/p-EYMvnfpO.js +1 -0
- package/components/p-K2tV3sog.js +1 -0
- package/components/p-LX68sH4m.js +1 -0
- package/components/{p-CKVSyuIH.js → p-MRcLOacJ.js} +1 -1
- package/components/p-N4_1eZ9k.js +1 -0
- package/components/p-PNU1f8B9.js +1 -0
- package/components/p-SFcKtdEL.js +1 -0
- package/components/p-VezrLuwj.js +1 -0
- package/components/p-eF_oZrS1.js +1 -0
- package/components/p-ez-wfqCC.js +1 -0
- package/components/p-gQbQhfDs.js +1 -0
- package/components/p-ibXnjCdF.js +1 -0
- package/components/p-jTIj1nFL.js +1 -0
- package/components/p-k2uLDFNn.js +1 -0
- package/components/p-pK9HRi91.js +1 -0
- package/components/p-sijpPVRP.js +1 -0
- package/components/p-tMIvQ4L0.js +1 -0
- package/components/p-xf66Fag-.js +1 -0
- package/components/p-xzKm-BQN.js +1 -0
- package/components/p-yktKa2eA.js +1 -0
- package/components/x-address.js +1 -1
- package/components/x-affix.d.ts +0 -0
- package/components/x-affix.js +1 -1
- package/components/x-alert.d.ts +0 -0
- package/components/x-alert.js +1 -1
- package/components/x-anchor-link.d.ts +0 -0
- package/components/x-anchor-link.js +1 -1
- package/components/x-anchor.d.ts +0 -0
- package/components/x-anchor.js +1 -1
- package/components/x-app.d.ts +0 -0
- package/components/x-app.js +1 -1
- package/components/x-auto-complete-dropdown-content.d.ts +0 -0
- package/components/x-auto-complete-dropdown-content.js +1 -1
- package/components/x-auto-complete.d.ts +0 -0
- package/components/x-auto-complete.js +1 -1
- package/components/x-avatar.d.ts +0 -0
- package/components/x-avatar.js +1 -1
- package/components/x-back-top.js +1 -1
- package/components/x-badge.d.ts +0 -0
- package/components/x-badge.js +1 -1
- package/components/x-breadcrumb-item.d.ts +0 -0
- package/components/x-breadcrumb-item.js +1 -1
- package/components/x-breadcrumb.d.ts +0 -0
- package/components/x-breadcrumb.js +1 -1
- package/components/x-button.d.ts +0 -0
- package/components/x-button.js +1 -1
- package/components/x-captcha.js +1 -1
- package/components/x-card.d.ts +0 -0
- package/components/x-card.js +1 -1
- package/components/x-carousel.d.ts +0 -0
- package/components/x-carousel.js +1 -1
- package/components/x-cascader-dropdown-content.d.ts +0 -0
- package/components/x-cascader-dropdown-content.js +1 -1
- package/components/x-cascader.d.ts +0 -0
- package/components/x-cascader.js +1 -1
- package/components/x-checkbox.d.ts +0 -0
- package/components/x-checkbox.js +1 -1
- package/components/x-code-editor.d.ts +11 -0
- package/components/x-code-editor.js +1 -0
- package/components/x-col.d.ts +0 -0
- package/components/x-col.js +1 -1
- package/components/x-collapse-panel.d.ts +0 -0
- package/components/x-collapse-panel.js +1 -1
- package/components/x-collapse.d.ts +0 -0
- package/components/x-collapse.js +1 -1
- package/components/x-color-picker-panel.d.ts +0 -0
- package/components/x-color-picker-panel.js +1 -1
- package/components/x-color-picker.d.ts +0 -0
- package/components/x-color-picker.js +1 -1
- package/components/x-comment.d.ts +0 -0
- package/components/x-comment.js +1 -1
- package/components/x-content.d.ts +0 -0
- package/components/x-content.js +1 -1
- package/components/x-date-picker-dropdown-content.d.ts +0 -0
- package/components/x-date-picker-dropdown-content.js +1 -1
- package/components/x-date-picker.d.ts +0 -0
- package/components/x-date-picker.js +1 -1
- package/components/x-descriptions-item.d.ts +0 -0
- package/components/x-descriptions-item.js +1 -1
- package/components/x-descriptions.d.ts +0 -0
- package/components/x-descriptions.js +1 -1
- package/components/x-divider.d.ts +0 -0
- package/components/x-divider.js +1 -1
- package/components/x-drawer-content.d.ts +0 -0
- package/components/x-drawer-content.js +1 -1
- package/components/x-drawer.d.ts +0 -0
- package/components/x-drawer.js +1 -1
- package/components/x-dropdown-content.d.ts +0 -0
- package/components/x-dropdown-content.js +1 -1
- package/components/x-dropdown.d.ts +0 -0
- package/components/x-dropdown.js +1 -1
- package/components/x-editor.d.ts +0 -0
- package/components/x-editor.js +1 -1
- package/components/x-empty.d.ts +0 -0
- package/components/x-empty.js +1 -1
- package/components/x-finder.d.ts +0 -0
- package/components/x-finder.js +1 -1
- package/components/x-flex.d.ts +0 -0
- package/components/x-flex.js +1 -1
- package/components/x-float-button.d.ts +0 -0
- package/components/x-float-button.js +1 -1
- package/components/x-footer.d.ts +0 -0
- package/components/x-footer.js +1 -1
- package/components/x-form-builder.d.ts +0 -0
- package/components/x-form-builder.js +1 -1
- package/components/x-form-item.d.ts +0 -0
- package/components/x-form-item.js +1 -1
- package/components/x-form.d.ts +0 -0
- package/components/x-form.js +1 -1
- package/components/x-header.d.ts +0 -0
- package/components/x-header.js +1 -1
- package/components/x-icon-picker-dropdown-content.d.ts +11 -0
- package/components/x-icon-picker-dropdown-content.js +1 -0
- package/components/x-icon.d.ts +0 -0
- package/components/x-icon.js +1 -1
- package/components/x-image.d.ts +0 -0
- package/components/x-image.js +1 -1
- package/components/x-infinite-scroll.d.ts +0 -0
- package/components/x-infinite-scroll.js +1 -1
- package/components/x-input-icon.d.ts +11 -0
- package/components/x-input-icon.js +1 -0
- package/components/x-input-number.d.ts +0 -0
- package/components/x-input-number.js +1 -1
- package/components/x-input.d.ts +0 -0
- package/components/x-input.js +1 -1
- package/components/x-layout-admin.d.ts +11 -0
- package/components/x-layout-admin.js +1 -0
- package/components/x-layout-detail.d.ts +11 -0
- package/components/x-layout-detail.js +1 -0
- package/components/x-layout-list.d.ts +11 -0
- package/components/x-layout-list.js +1 -0
- package/components/x-layout.d.ts +0 -0
- package/components/x-layout.js +1 -1
- package/components/x-list-item.js +1 -1
- package/components/x-list.d.ts +0 -0
- package/components/x-list.js +1 -1
- package/components/x-login.d.ts +11 -0
- package/components/x-login.js +1 -0
- package/components/x-mentions.d.ts +0 -0
- package/components/x-mentions.js +1 -1
- package/components/x-menu-divider.d.ts +0 -0
- package/components/x-menu-divider.js +1 -1
- package/components/x-menu-item-group.d.ts +0 -0
- package/components/x-menu-item-group.js +1 -1
- package/components/x-menu-item.d.ts +0 -0
- package/components/x-menu-item.js +1 -1
- package/components/x-menu-submenu.d.ts +0 -0
- package/components/x-menu-submenu.js +1 -1
- package/components/x-menu.d.ts +0 -0
- package/components/x-menu.js +1 -1
- package/components/x-message.d.ts +0 -0
- package/components/x-message.js +1 -1
- package/components/x-modal-content.d.ts +0 -0
- package/components/x-modal-content.js +1 -1
- package/components/x-modal.d.ts +0 -0
- package/components/x-modal.js +1 -1
- package/components/x-notification.d.ts +0 -0
- package/components/x-notification.js +1 -1
- package/components/x-page-header.js +1 -1
- package/components/x-pagination.d.ts +0 -0
- package/components/x-pagination.js +1 -1
- package/components/x-popconfirm-content.d.ts +0 -0
- package/components/x-popconfirm-content.js +1 -1
- package/components/x-popconfirm.d.ts +0 -0
- package/components/x-popconfirm.js +1 -1
- package/components/x-popover-content.d.ts +0 -0
- package/components/x-popover-content.js +1 -1
- package/components/x-popover.d.ts +0 -0
- package/components/x-popover.js +1 -1
- package/components/x-progress.d.ts +0 -0
- package/components/x-progress.js +1 -1
- package/components/x-qr-code.d.ts +0 -0
- package/components/x-qr-code.js +1 -1
- package/components/x-radio-group.d.ts +0 -0
- package/components/x-radio-group.js +1 -1
- package/components/x-radio.d.ts +0 -0
- package/components/x-radio.js +1 -1
- package/components/x-range-picker-dropdown-content.d.ts +0 -0
- package/components/x-range-picker-dropdown-content.js +1 -1
- package/components/x-range-picker.d.ts +0 -0
- package/components/x-range-picker.js +1 -1
- package/components/x-rate.d.ts +0 -0
- package/components/x-rate.js +1 -1
- package/components/x-result.d.ts +0 -0
- package/components/x-result.js +1 -1
- package/components/x-row.d.ts +0 -0
- package/components/x-row.js +1 -1
- package/components/x-segmented.d.ts +0 -0
- package/components/x-segmented.js +1 -1
- package/components/x-select-dropdown-content.d.ts +0 -0
- package/components/x-select-dropdown-content.js +1 -1
- package/components/x-select-option.d.ts +0 -0
- package/components/x-select-option.js +1 -1
- package/components/x-select.d.ts +0 -0
- package/components/x-select.js +1 -1
- package/components/x-sider.d.ts +0 -0
- package/components/x-sider.js +1 -1
- package/components/x-skeleton.d.ts +0 -0
- package/components/x-skeleton.js +1 -1
- package/components/x-slider.d.ts +0 -0
- package/components/x-slider.js +1 -1
- package/components/x-space.d.ts +0 -0
- package/components/x-space.js +1 -1
- package/components/x-spin.d.ts +0 -0
- package/components/x-spin.js +1 -1
- package/components/x-splitter-panel.d.ts +0 -0
- package/components/x-splitter-panel.js +1 -1
- package/components/x-splitter.d.ts +0 -0
- package/components/x-splitter.js +1 -1
- package/components/x-statistic.d.ts +0 -0
- package/components/x-statistic.js +1 -1
- package/components/x-step.d.ts +0 -0
- package/components/x-step.js +1 -1
- package/components/x-steps.d.ts +0 -0
- package/components/x-steps.js +1 -1
- package/components/x-switch.d.ts +0 -0
- package/components/x-switch.js +1 -1
- package/components/x-tab-pane.js +1 -1
- package/components/x-table-cell.d.ts +0 -0
- package/components/x-table-cell.js +1 -1
- package/components/x-table-row.d.ts +0 -0
- package/components/x-table-row.js +1 -1
- package/components/x-table.d.ts +0 -0
- package/components/x-table.js +1 -1
- package/components/x-tabs.d.ts +0 -0
- package/components/x-tabs.js +1 -1
- package/components/x-tag.d.ts +0 -0
- package/components/x-tag.js +1 -1
- package/components/x-textarea.d.ts +0 -0
- package/components/x-textarea.js +1 -1
- package/components/x-time-picker-dropdown-content.d.ts +0 -0
- package/components/x-time-picker-dropdown-content.js +1 -1
- package/components/x-time-picker.d.ts +0 -0
- package/components/x-time-picker.js +1 -1
- package/components/x-timeline-item.d.ts +0 -0
- package/components/x-timeline-item.js +1 -1
- package/components/x-timeline.d.ts +0 -0
- package/components/x-timeline.js +1 -1
- package/components/x-tooltip-content.d.ts +0 -0
- package/components/x-tooltip-content.js +1 -1
- package/components/x-tooltip.d.ts +0 -0
- package/components/x-tooltip.js +1 -1
- package/components/x-tour-panel.d.ts +0 -0
- package/components/x-tour-panel.js +1 -1
- package/components/x-tour.d.ts +0 -0
- package/components/x-tour.js +1 -1
- package/components/x-transfer.d.ts +0 -0
- package/components/x-transfer.js +1 -1
- package/components/x-tree-select-dropdown-content.js +1 -1
- package/components/x-tree-select.d.ts +0 -0
- package/components/x-tree-select.js +1 -1
- package/components/x-tree.d.ts +0 -0
- package/components/x-tree.js +1 -1
- package/components/x-typography.d.ts +0 -0
- package/components/x-typography.js +1 -1
- package/components/x-upload.d.ts +0 -0
- package/components/x-upload.js +1 -1
- package/components/x-virtual-scroll.d.ts +0 -0
- package/components/x-virtual-scroll.js +1 -1
- package/components/x-workflow-builder.d.ts +0 -0
- package/components/x-workflow-builder.js +1 -1
- package/components/x-workflow.d.ts +0 -0
- package/components/x-workflow.js +1 -1
- package/dist/cjs/{abstract-control-C4D0eNCC.js → abstract-control-JI4_szTV.js} +40 -14
- package/dist/cjs/{config-BP9bROYD.js → config-BYR5qIIZ.js} +3 -3
- package/dist/cjs/icons-DJ-kuboh.js +19291 -0
- package/dist/cjs/{index-C7sKs9A2.js → index-Cy2P_ln3.js} +39 -12
- package/dist/cjs/index.cjs.js +7 -5
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{locale.service-Cz-aZQnr.js → locale.service-DT6E8Rzd.js} +17 -9
- package/dist/cjs/{modal-service-BtAF0mFq.js → modal-service-FQpCPk_L.js} +34 -14
- package/dist/cjs/{notification-service-m6I5U9aG.js → notification-service-v7LRmTyh.js} +12 -13
- package/dist/cjs/{portal-controller-CtYVbhXL.js → portal-controller-DJft2QkA.js} +11 -16
- package/dist/cjs/{schema-builder-CYnX7lKi.js → schema-builder-BKX4QdTc.js} +291 -89
- package/dist/cjs/{tree.service-fxLOCSpD.js → tree.service-u0qqS1Qh.js} +22 -22
- package/dist/cjs/x-address_51.cjs.entry.js +26874 -0
- package/dist/cjs/x-affix.cjs.entry.js +5 -5
- package/dist/cjs/{x-alert_11.cjs.entry.js → x-alert_9.cjs.entry.js} +267 -646
- package/dist/cjs/x-anchor-link.cjs.entry.js +3 -3
- package/dist/cjs/x-anchor.cjs.entry.js +11 -9
- package/dist/cjs/x-app.cjs.entry.js +19 -19
- package/dist/cjs/x-back-top.cjs.entry.js +4 -4
- package/dist/cjs/x-breadcrumb_2.cjs.entry.js +124 -0
- package/dist/cjs/x-carousel.cjs.entry.js +7 -7
- package/dist/cjs/x-code-editor.cjs.entry.js +2365 -0
- package/dist/cjs/x-col_11.cjs.entry.js +1204 -0
- package/dist/cjs/x-collapse-panel.cjs.entry.js +4 -4
- package/dist/cjs/x-collapse.cjs.entry.js +4 -4
- package/dist/cjs/x-comment.cjs.entry.js +5 -5
- package/dist/cjs/x-descriptions-item.cjs.entry.js +6 -6
- package/dist/cjs/{x-breadcrumb_5.cjs.entry.js → x-descriptions_3.cjs.entry.js} +36 -157
- package/dist/cjs/x-drawer-content.cjs.entry.js +8 -8
- package/dist/cjs/x-drawer.cjs.entry.js +9 -7
- package/dist/cjs/x-finder.cjs.entry.js +39 -32
- package/dist/cjs/x-icon-picker-dropdown-content.cjs.entry.js +158 -0
- package/dist/cjs/x-infinite-scroll.cjs.entry.js +4 -4
- package/dist/cjs/x-input-icon.cjs.entry.js +361 -0
- package/dist/cjs/x-layout-admin.cjs.entry.js +45 -0
- package/dist/cjs/x-layout-detail.cjs.entry.js +145 -0
- package/dist/cjs/x-layout-list.cjs.entry.js +259 -0
- package/dist/cjs/x-list-item.cjs.entry.js +3 -3
- package/dist/cjs/{x-menu-submenu.cjs.entry.js → x-list_2.cjs.entry.js} +141 -7
- package/dist/cjs/x-mentions.cjs.entry.js +6 -6
- package/dist/cjs/x-menu-divider.cjs.entry.js +2 -2
- package/dist/cjs/x-menu-item-group.cjs.entry.js +2 -2
- package/dist/cjs/x-menu_2.cjs.entry.js +509 -0
- package/dist/cjs/x-message.cjs.entry.js +7 -7
- package/dist/cjs/x-notification.cjs.entry.js +7 -7
- package/dist/cjs/x-page-header.cjs.entry.js +3 -3
- package/dist/cjs/x-popconfirm-content.cjs.entry.js +4 -4
- package/dist/cjs/x-popconfirm.cjs.entry.js +5 -5
- package/dist/cjs/x-progress.cjs.entry.js +10 -10
- package/dist/cjs/x-qr-code.cjs.entry.js +11 -9
- package/dist/cjs/x-skeleton.cjs.entry.js +5 -5
- package/dist/cjs/x-splitter-panel.cjs.entry.js +2 -2
- package/dist/cjs/x-splitter.cjs.entry.js +11 -5
- package/dist/cjs/x-statistic.cjs.entry.js +3 -3
- package/dist/cjs/x-step.cjs.entry.js +7 -7
- package/dist/cjs/x-steps.cjs.entry.js +6 -8
- package/dist/cjs/x-table-cell.cjs.entry.js +4 -4
- package/dist/cjs/x-table-row.cjs.entry.js +13 -10
- package/dist/cjs/x-timeline-item.cjs.entry.js +4 -4
- package/dist/cjs/x-timeline.cjs.entry.js +4 -4
- package/dist/cjs/x-tour-panel.cjs.entry.js +3 -3
- package/dist/cjs/x-tour.cjs.entry.js +16 -16
- package/dist/cjs/x-virtual-scroll.cjs.entry.js +5 -5
- package/dist/cjs/x-workflow-builder.cjs.entry.js +8 -8
- package/dist/cjs/xlabs.cjs.js +24 -0
- package/dist/collection/collection-manifest.json +8 -1
- package/dist/collection/components/x-address/vietnam-data.js +3 -3
- package/dist/collection/components/x-address/x-address.css +5 -2
- package/dist/collection/components/x-address/x-address.js +8 -10
- package/dist/collection/components/x-affix/x-affix.js +4 -4
- package/dist/collection/components/x-alert/x-alert.css +5 -2
- package/dist/collection/components/x-alert/x-alert.js +1 -1
- package/dist/collection/components/x-anchor/x-anchor.js +16 -8
- package/dist/collection/components/x-anchor-link/x-anchor-link.js +2 -2
- package/dist/collection/components/x-app/x-app.js +15 -15
- package/dist/collection/components/x-auto-complete/auto-complete-dropdown-content/auto-complete-dropdown-content.css +5 -2
- package/dist/collection/components/x-auto-complete/auto-complete-dropdown-content/auto-complete-dropdown-content.js +1 -1
- package/dist/collection/components/x-auto-complete/types.js +2 -5
- package/dist/collection/components/x-auto-complete/x-auto-complete.css +5 -2
- package/dist/collection/components/x-auto-complete/x-auto-complete.js +52 -25
- package/dist/collection/components/x-avatar/x-avatar.js +23 -14
- package/dist/collection/components/x-back-top/x-back-top.js +3 -3
- package/dist/collection/components/x-badge/x-badge.js +3 -7
- package/dist/collection/components/x-breadcrumb/x-breadcrumb.js +3 -3
- package/dist/collection/components/x-breadcrumb-item/x-breadcrumb-item.js +1 -1
- package/dist/collection/components/x-button/x-button.js +7 -7
- package/dist/collection/components/x-captcha/x-captcha.js +28 -8
- package/dist/collection/components/x-card/x-card.css +9 -4
- package/dist/collection/components/x-card/x-card.js +1 -1
- package/dist/collection/components/x-carousel/x-carousel.css +5 -2
- package/dist/collection/components/x-carousel/x-carousel.js +5 -5
- package/dist/collection/components/x-cascader/cascader-dropdown-content/cascader-dropdown-content.css +5 -2
- package/dist/collection/components/x-cascader/cascader-dropdown-content/cascader-dropdown-content.js +9 -9
- package/dist/collection/components/x-cascader/x-cascader.css +5 -2
- package/dist/collection/components/x-cascader/x-cascader.js +17 -20
- package/dist/collection/components/x-checkbox/x-checkbox.css +5 -2
- package/dist/collection/components/x-checkbox/x-checkbox.js +9 -19
- package/dist/collection/components/x-code-editor/types.js +1 -0
- package/dist/collection/components/x-code-editor/x-code-editor.css +1274 -0
- package/dist/collection/components/x-code-editor/x-code-editor.js +1497 -0
- package/dist/collection/components/x-col/x-col.css +5 -2
- package/dist/collection/components/x-col/x-col.js +14 -14
- package/dist/collection/components/x-collapse/x-collapse.css +5 -2
- package/dist/collection/components/x-collapse/x-collapse.js +4 -4
- package/dist/collection/components/x-collapse-panel/x-collapse-panel.css +5 -2
- package/dist/collection/components/x-collapse-panel/x-collapse-panel.js +4 -4
- package/dist/collection/components/x-color-picker/x-color-picker-panel.js +6 -8
- package/dist/collection/components/x-color-picker/x-color-picker.css +5 -2
- package/dist/collection/components/x-color-picker/x-color-picker.js +72 -12
- package/dist/collection/components/x-comment/x-comment.css +5 -2
- package/dist/collection/components/x-comment/x-comment.js +3 -3
- package/dist/collection/components/x-content/x-content.css +5 -4
- package/dist/collection/components/x-content/x-content.js +3 -3
- package/dist/collection/components/x-date-picker/date-picker-dropdown-content/date-picker-dropdown-content.css +7 -3
- package/dist/collection/components/x-date-picker/date-picker-dropdown-content/date-picker-dropdown-content.js +5 -9
- package/dist/collection/components/x-date-picker/x-date-picker.css +5 -2
- package/dist/collection/components/x-date-picker/x-date-picker.js +65 -23
- package/dist/collection/components/x-descriptions/x-descriptions.css +5 -2
- package/dist/collection/components/x-descriptions/x-descriptions.js +3 -3
- package/dist/collection/components/x-descriptions-item/x-descriptions-item.css +5 -2
- package/dist/collection/components/x-descriptions-item/x-descriptions-item.js +4 -4
- package/dist/collection/components/x-divider/x-divider.css +5 -2
- package/dist/collection/components/x-divider/x-divider.js +3 -3
- package/dist/collection/components/x-drawer/x-drawer.css +5 -2
- package/dist/collection/components/x-drawer/x-drawer.js +6 -4
- package/dist/collection/components/x-drawer-content/x-drawer-content.css +5 -2
- package/dist/collection/components/x-drawer-content/x-drawer-content.js +4 -4
- package/dist/collection/components/x-dropdown/dropdown-content/dropdown-content.css +5 -2
- package/dist/collection/components/x-dropdown/dropdown-content/dropdown-content.js +1 -1
- package/dist/collection/components/x-dropdown/x-dropdown.css +5 -2
- package/dist/collection/components/x-dropdown/x-dropdown.js +34 -12
- package/dist/collection/components/x-editor/types.js +4 -6
- package/dist/collection/components/x-editor/x-editor.css +25 -10
- package/dist/collection/components/x-editor/x-editor.js +80 -74
- package/dist/collection/components/x-empty/x-empty.css +5 -2
- package/dist/collection/components/x-empty/x-empty.js +1 -1
- package/dist/collection/components/x-finder/services/finder-service.js +7 -9
- package/dist/collection/components/x-finder/x-finder.css +10 -4
- package/dist/collection/components/x-finder/x-finder.js +28 -19
- package/dist/collection/components/x-flex/x-flex.css +5 -2
- package/dist/collection/components/x-flex/x-flex.js +5 -7
- package/dist/collection/components/x-float-button/x-float-button.css +5 -2
- package/dist/collection/components/x-float-button/x-float-button.js +4 -4
- package/dist/collection/components/x-footer/x-footer.css +5 -2
- package/dist/collection/components/x-footer/x-footer.js +1 -1
- package/dist/collection/components/x-form/x-form.css +5 -2
- package/dist/collection/components/x-form/x-form.js +98 -3
- package/dist/collection/components/x-form-builder/services/apis/api-client.js +24 -15
- package/dist/collection/components/x-form-builder/services/forms/form-array.js +3 -5
- package/dist/collection/components/x-form-builder/services/forms/form-group.js +6 -6
- package/dist/collection/components/x-form-builder/services/forms/validators.js +20 -10
- package/dist/collection/components/x-form-builder/services/schema/condition-builder.js +25 -44
- package/dist/collection/components/x-form-builder/services/schema/default-registry.js +108 -87
- package/dist/collection/components/x-form-builder/services/schema/form-mapping.js +80 -5
- package/dist/collection/components/x-form-builder/services/schema/formula-builder.js +114 -0
- package/dist/collection/components/x-form-builder/services/schema/schema-builder.js +7 -2
- package/dist/collection/components/x-form-builder/services/schema/schema-validator.js +1 -1
- package/dist/collection/components/x-form-builder/types/common/index.js +1 -0
- package/dist/collection/components/x-form-builder/types/common/ui-types.js +1 -0
- package/dist/collection/components/x-form-builder/types/fields/selection-fields.js +1 -9
- package/dist/collection/components/x-form-builder/utils/condition-engine.js +10 -10
- package/dist/collection/components/x-form-builder/utils/utils.js +25 -6
- package/dist/collection/components/x-form-builder/x-form-builder.js +468 -205
- package/dist/collection/components/x-form-item/x-form-item.css +16 -10
- package/dist/collection/components/x-form-item/x-form-item.js +46 -28
- package/dist/collection/components/x-header/x-header.css +5 -2
- package/dist/collection/components/x-header/x-header.js +1 -1
- package/dist/collection/components/x-icon/icons.js +19287 -2716
- package/dist/collection/components/x-icon/x-icon.css +5 -2
- package/dist/collection/components/x-icon/x-icon.js +6 -6
- package/dist/collection/components/x-image/x-image.css +5 -2
- package/dist/collection/components/x-image/x-image.js +6 -6
- package/dist/collection/components/x-infinite-scroll/x-infinite-scroll.css +5 -2
- package/dist/collection/components/x-infinite-scroll/x-infinite-scroll.js +2 -2
- package/dist/collection/components/x-input/x-input.css +25 -2
- package/dist/collection/components/x-input/x-input.js +38 -9
- package/dist/collection/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.css +453 -0
- package/dist/collection/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.js +304 -0
- package/dist/collection/components/x-input-icon/types.js +1 -0
- package/dist/collection/components/x-input-icon/x-input-icon.css +404 -0
- package/dist/collection/components/x-input-icon/x-input-icon.js +917 -0
- package/dist/collection/components/x-input-number/x-input-number.css +5 -2
- package/dist/collection/components/x-input-number/x-input-number.js +108 -13
- package/dist/collection/components/x-layout/x-layout.css +5 -2
- package/dist/collection/components/x-layout/x-layout.js +11 -5
- package/dist/collection/components/x-layout-admin/x-layout-admin.css +403 -0
- package/dist/collection/components/x-layout-admin/x-layout-admin.js +127 -0
- package/dist/collection/components/x-layout-detail/x-layout-detail.css +479 -0
- package/dist/collection/components/x-layout-detail/x-layout-detail.js +300 -0
- package/dist/collection/components/x-layout-list/types.js +1 -0
- package/dist/collection/components/x-layout-list/x-layout-list.css +511 -0
- package/dist/collection/components/x-layout-list/x-layout-list.js +619 -0
- package/dist/collection/components/x-list/x-list.css +5 -2
- package/dist/collection/components/x-list/x-list.js +3 -3
- package/dist/collection/components/x-list-item/x-list-item.css +5 -2
- package/dist/collection/components/x-list-item/x-list-item.js +1 -1
- package/dist/collection/components/x-login/types.js +1 -0
- package/dist/collection/components/x-login/x-login.css +562 -0
- package/dist/collection/components/x-login/x-login.js +706 -0
- package/dist/collection/components/x-mentions/x-mentions.css +5 -2
- package/dist/collection/components/x-mentions/x-mentions.js +4 -4
- package/dist/collection/components/x-menu/x-menu.js +1 -1
- package/dist/collection/components/x-menu-divider/x-menu-divider.js +1 -1
- package/dist/collection/components/x-menu-item/x-menu-item.js +2 -2
- package/dist/collection/components/x-menu-item-group/x-menu-item-group.js +1 -1
- package/dist/collection/components/x-menu-submenu/x-menu-submenu.js +5 -5
- package/dist/collection/components/x-message/message-service.js +2 -2
- package/dist/collection/components/x-message/x-message.css +5 -2
- package/dist/collection/components/x-message/x-message.js +5 -5
- package/dist/collection/components/x-modal/modal-service.js +33 -13
- package/dist/collection/components/x-modal/x-modal.css +5 -2
- package/dist/collection/components/x-modal/x-modal.js +148 -47
- package/dist/collection/components/x-modal-content/x-modal-content.css +110 -18
- package/dist/collection/components/x-modal-content/x-modal-content.js +157 -12
- package/dist/collection/components/x-notification/notification-service.js +9 -10
- package/dist/collection/components/x-notification/x-notification.css +6 -2
- package/dist/collection/components/x-notification/x-notification.js +4 -4
- package/dist/collection/components/x-page-header/x-page-header.css +5 -2
- package/dist/collection/components/x-page-header/x-page-header.js +1 -1
- package/dist/collection/components/x-pagination/x-pagination.css +11 -2
- package/dist/collection/components/x-pagination/x-pagination.js +18 -14
- package/dist/collection/components/x-popconfirm/popconfirm-content/popconfirm-content.css +5 -2
- package/dist/collection/components/x-popconfirm/popconfirm-content/popconfirm-content.js +1 -1
- package/dist/collection/components/x-popconfirm/x-popconfirm.css +5 -2
- package/dist/collection/components/x-popconfirm/x-popconfirm.js +1 -1
- package/dist/collection/components/x-popover/popover-content/popover-content.css +5 -2
- package/dist/collection/components/x-popover/popover-content/popover-content.js +1 -1
- package/dist/collection/components/x-popover/x-popover.css +5 -2
- package/dist/collection/components/x-popover/x-popover.js +1 -1
- package/dist/collection/components/x-portal/positioning.js +11 -16
- package/dist/collection/components/x-progress/x-progress.css +5 -2
- package/dist/collection/components/x-progress/x-progress.js +8 -8
- package/dist/collection/components/x-qr-code/x-qr-code.css +2 -1
- package/dist/collection/components/x-qr-code/x-qr-code.js +23 -1
- package/dist/collection/components/x-radio/x-radio.css +5 -2
- package/dist/collection/components/x-radio/x-radio.js +5 -5
- package/dist/collection/components/x-radio-group/x-radio-group.css +5 -2
- package/dist/collection/components/x-radio-group/x-radio-group.js +6 -8
- package/dist/collection/components/x-range-picker/range-picker-dropdown-content/range-picker-dropdown-content.css +7 -3
- package/dist/collection/components/x-range-picker/range-picker-dropdown-content/range-picker-dropdown-content.js +13 -13
- package/dist/collection/components/x-range-picker/x-range-picker.css +5 -2
- package/dist/collection/components/x-range-picker/x-range-picker.js +9 -18
- package/dist/collection/components/x-rate/x-rate.css +5 -2
- package/dist/collection/components/x-rate/x-rate.js +3 -3
- package/dist/collection/components/x-result/x-result.css +5 -2
- package/dist/collection/components/x-result/x-result.js +11 -10
- package/dist/collection/components/x-row/x-row.css +5 -2
- package/dist/collection/components/x-row/x-row.js +4 -4
- package/dist/collection/components/x-segmented/x-segmented.css +5 -2
- package/dist/collection/components/x-segmented/x-segmented.js +8 -8
- package/dist/collection/components/x-select/select-dropdown-content/select-dropdown-content.css +11 -4
- package/dist/collection/components/x-select/select-dropdown-content/select-dropdown-content.js +1 -1
- package/dist/collection/components/x-select/x-select.css +11 -4
- package/dist/collection/components/x-select/x-select.js +33 -39
- package/dist/collection/components/x-select-option/x-select-option.css +5 -2
- package/dist/collection/components/x-select-option/x-select-option.js +3 -3
- package/dist/collection/components/x-sider/x-sider.css +7 -4
- package/dist/collection/components/x-sider/x-sider.js +7 -9
- package/dist/collection/components/x-skeleton/x-skeleton.css +5 -2
- package/dist/collection/components/x-skeleton/x-skeleton.js +3 -3
- package/dist/collection/components/x-slider/x-slider.css +5 -2
- package/dist/collection/components/x-slider/x-slider.js +11 -23
- package/dist/collection/components/x-space/x-space.css +5 -2
- package/dist/collection/components/x-space/x-space.js +4 -4
- package/dist/collection/components/x-spin/x-spin.css +5 -2
- package/dist/collection/components/x-spin/x-spin.js +1 -1
- package/dist/collection/components/x-splitter/x-splitter.js +14 -8
- package/dist/collection/components/x-splitter-panel/x-splitter-panel.js +1 -1
- package/dist/collection/components/x-statistic/x-statistic.css +5 -2
- package/dist/collection/components/x-statistic/x-statistic.js +1 -1
- package/dist/collection/components/x-step/x-step.css +5 -2
- package/dist/collection/components/x-step/x-step.js +5 -5
- package/dist/collection/components/x-steps/x-steps.css +5 -2
- package/dist/collection/components/x-steps/x-steps.js +4 -6
- package/dist/collection/components/x-switch/x-switch.css +5 -2
- package/dist/collection/components/x-switch/x-switch.js +7 -4
- package/dist/collection/components/x-tab-pane/x-tab-pane.css +5 -2
- package/dist/collection/components/x-tab-pane/x-tab-pane.js +58 -2
- package/dist/collection/components/x-table/x-table.css +187 -41
- package/dist/collection/components/x-table/x-table.js +242 -104
- package/dist/collection/components/x-table-cell/x-table-cell.css +5 -2
- package/dist/collection/components/x-table-cell/x-table-cell.js +2 -2
- package/dist/collection/components/x-table-row/x-table-row.css +5 -2
- package/dist/collection/components/x-table-row/x-table-row.js +11 -8
- package/dist/collection/components/x-tabs/x-tabs.css +17 -2
- package/dist/collection/components/x-tabs/x-tabs.js +130 -12
- package/dist/collection/components/x-tag/x-tag.css +6 -3
- package/dist/collection/components/x-tag/x-tag.js +1 -4
- package/dist/collection/components/x-textarea/x-textarea.css +5 -2
- package/dist/collection/components/x-textarea/x-textarea.js +5 -5
- package/dist/collection/components/x-time-picker/time-picker-dropdown-content/time-picker-dropdown-content.css +5 -2
- package/dist/collection/components/x-time-picker/time-picker-dropdown-content/time-picker-dropdown-content.js +1 -1
- package/dist/collection/components/x-time-picker/x-time-picker.css +5 -2
- package/dist/collection/components/x-time-picker/x-time-picker.js +4 -7
- package/dist/collection/components/x-timeline/x-timeline.css +5 -2
- package/dist/collection/components/x-timeline/x-timeline.js +2 -2
- package/dist/collection/components/x-timeline-item/x-timeline-item.css +5 -2
- package/dist/collection/components/x-timeline-item/x-timeline-item.js +2 -2
- package/dist/collection/components/x-tooltip/x-tooltip.css +5 -2
- package/dist/collection/components/x-tooltip/x-tooltip.js +6 -8
- package/dist/collection/components/x-tooltip-content/x-tooltip-content.js +2 -2
- package/dist/collection/components/x-tour/x-tour-panel.css +5 -2
- package/dist/collection/components/x-tour/x-tour-panel.js +1 -1
- package/dist/collection/components/x-tour/x-tour.css +5 -2
- package/dist/collection/components/x-tour/x-tour.js +15 -15
- package/dist/collection/components/x-transfer/x-transfer.css +5 -2
- package/dist/collection/components/x-transfer/x-transfer.js +8 -8
- package/dist/collection/components/x-tree/x-tree.css +5 -2
- package/dist/collection/components/x-tree/x-tree.js +25 -26
- package/dist/collection/components/x-tree-select/tree-select-dropdown-content/tree-select-dropdown-content.css +5 -2
- package/dist/collection/components/x-tree-select/tree-select-dropdown-content/tree-select-dropdown-content.js +6 -6
- package/dist/collection/components/x-tree-select/x-tree-select.css +5 -2
- package/dist/collection/components/x-tree-select/x-tree-select.js +21 -31
- package/dist/collection/components/x-typography/x-typography.css +10 -3
- package/dist/collection/components/x-typography/x-typography.js +12 -12
- package/dist/collection/components/x-upload/x-upload.css +5 -2
- package/dist/collection/components/x-upload/x-upload.js +342 -48
- package/dist/collection/components/x-virtual-scroll/x-virtual-scroll.js +5 -5
- package/dist/collection/components/x-workflow/x-workflow.css +3 -1
- package/dist/collection/components/x-workflow/x-workflow.js +81 -66
- package/dist/collection/components/x-workflow-builder/x-workflow-builder.css +5 -2
- package/dist/collection/components/x-workflow-builder/x-workflow-builder.js +6 -6
- package/dist/collection/index.js +2 -0
- package/dist/collection/locales/languages/mn_MN.js +14 -1
- package/dist/collection/locales/locale.service.js +4 -9
- package/dist/collection/utils/code-editor/ast-parser.js +378 -0
- package/dist/collection/utils/code-editor/autocomplete-db.js +590 -0
- package/dist/collection/utils/code-editor/history.js +56 -0
- package/dist/collection/utils/code-editor/index.js +4 -0
- package/dist/collection/utils/code-editor/plugin-system.js +54 -0
- package/dist/collection/utils/code-editor/tokenizer.js +300 -0
- package/dist/collection/utils/config.js +3 -3
- package/dist/collection/utils/form/core/abstract-control.js +40 -14
- package/dist/collection/utils/form/core/form-array.js +7 -5
- package/dist/collection/utils/form/core/form-group.js +8 -4
- package/dist/collection/utils/form/frameworks.js +7 -3
- package/dist/collection/utils/form/validators/validators.js +3 -9
- package/dist/collection/utils/qr-code/engine/qr.engine.js +3 -3
- package/dist/collection/utils/qr-code/engine/qr.mask.js +3 -3
- package/dist/collection/utils/qr-code/engine/qr.rs.js +1 -1
- package/dist/collection/utils/table.service.js +40 -14
- package/dist/collection/utils/tree.service.js +22 -22
- package/dist/collection/utils/workflow/flow.service.js +95 -30
- package/dist/esm/{abstract-control-XBF88YT_.js → abstract-control-BtYiIQqg.js} +40 -14
- package/dist/esm/{config-BPeosvTA.js → config-RKpMhZmc.js} +3 -3
- package/dist/esm/icons-BgCjF74f.js +19289 -0
- package/dist/esm/{index-ig_mFsVk.js → index-BMTt8QT3.js} +39 -12
- package/dist/esm/index.js +6 -5
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{locale.service-D66tF8_2.js → locale.service-DFADJBLL.js} +17 -9
- package/dist/esm/{modal-service-C_e0SaFZ.js → modal-service-ikfAY1gn.js} +34 -14
- package/dist/esm/{notification-service-DJTSPOq7.js → notification-service-CUyIF7K-.js} +12 -13
- package/dist/esm/{portal-controller-COpzIi1n.js → portal-controller-DM8AggMt.js} +11 -16
- package/dist/esm/{schema-builder-DBPGgJBx.js → schema-builder-DlGEzg5B.js} +291 -89
- package/dist/esm/{tree.service-Dgxy93Bg.js → tree.service-iG9CbEpE.js} +22 -22
- package/dist/esm/x-address_51.entry.js +26822 -0
- package/dist/esm/x-affix.entry.js +5 -5
- package/dist/esm/{x-alert_11.entry.js → x-alert_9.entry.js} +268 -645
- package/dist/esm/x-anchor-link.entry.js +3 -3
- package/dist/esm/x-anchor.entry.js +11 -9
- package/dist/esm/x-app.entry.js +19 -19
- package/dist/esm/x-back-top.entry.js +4 -4
- package/dist/esm/x-breadcrumb_2.entry.js +121 -0
- package/dist/esm/x-carousel.entry.js +7 -7
- package/dist/esm/x-code-editor.entry.js +2363 -0
- package/dist/esm/x-col_11.entry.js +1192 -0
- package/dist/esm/x-collapse-panel.entry.js +4 -4
- package/dist/esm/x-collapse.entry.js +4 -4
- package/dist/esm/x-comment.entry.js +5 -5
- package/dist/esm/x-descriptions-item.entry.js +6 -6
- package/dist/esm/{x-breadcrumb_5.entry.js → x-descriptions_3.entry.js} +37 -156
- package/dist/esm/x-drawer-content.entry.js +8 -8
- package/dist/esm/x-drawer.entry.js +9 -7
- package/dist/esm/x-finder.entry.js +39 -32
- package/dist/esm/x-icon-picker-dropdown-content.entry.js +156 -0
- package/dist/esm/x-infinite-scroll.entry.js +4 -4
- package/dist/esm/x-input-icon.entry.js +359 -0
- package/dist/esm/x-layout-admin.entry.js +43 -0
- package/dist/esm/x-layout-detail.entry.js +143 -0
- package/dist/esm/x-layout-list.entry.js +257 -0
- package/dist/esm/x-list-item.entry.js +3 -3
- package/dist/esm/{x-menu-submenu.entry.js → x-list_2.entry.js} +141 -8
- package/dist/esm/x-mentions.entry.js +6 -6
- package/dist/esm/x-menu-divider.entry.js +2 -2
- package/dist/esm/x-menu-item-group.entry.js +2 -2
- package/dist/esm/x-menu_2.entry.js +506 -0
- package/dist/esm/x-message.entry.js +7 -7
- package/dist/esm/x-notification.entry.js +7 -7
- package/dist/esm/x-page-header.entry.js +3 -3
- package/dist/esm/x-popconfirm-content.entry.js +4 -4
- package/dist/esm/x-popconfirm.entry.js +5 -5
- package/dist/esm/x-progress.entry.js +10 -10
- package/dist/esm/x-qr-code.entry.js +11 -9
- package/dist/esm/x-skeleton.entry.js +5 -5
- package/dist/esm/x-splitter-panel.entry.js +2 -2
- package/dist/esm/x-splitter.entry.js +11 -5
- package/dist/esm/x-statistic.entry.js +3 -3
- package/dist/esm/x-step.entry.js +7 -7
- package/dist/esm/x-steps.entry.js +6 -8
- package/dist/esm/x-table-cell.entry.js +4 -4
- package/dist/esm/x-table-row.entry.js +13 -10
- package/dist/esm/x-timeline-item.entry.js +4 -4
- package/dist/esm/x-timeline.entry.js +4 -4
- package/dist/esm/x-tour-panel.entry.js +3 -3
- package/dist/esm/x-tour.entry.js +16 -16
- package/dist/esm/x-virtual-scroll.entry.js +5 -5
- package/dist/esm/x-workflow-builder.entry.js +8 -8
- package/dist/esm/xlabs.js +20 -0
- package/dist/types/components/x-app/x-app.d.ts +12 -12
- package/dist/types/components/x-auto-complete/auto-complete-dropdown-content/index.d.ts +1 -1
- package/dist/types/components/x-auto-complete/x-auto-complete.d.ts +6 -0
- package/dist/types/components/x-avatar/x-avatar.d.ts +3 -2
- package/dist/types/components/x-captcha/x-captcha.d.ts +4 -0
- package/dist/types/components/x-checkbox/x-checkbox.d.ts +0 -4
- package/dist/types/components/x-code-editor/types.d.ts +26 -0
- package/dist/types/components/x-code-editor/x-code-editor.d.ts +141 -0
- package/dist/types/components/x-color-picker/types.d.ts +4 -0
- package/dist/types/components/x-color-picker/x-color-picker.d.ts +8 -1
- package/dist/types/components/x-content/x-content.d.ts +1 -1
- package/dist/types/components/x-date-picker/x-date-picker.d.ts +4 -0
- package/dist/types/components/x-form/x-form.d.ts +12 -0
- package/dist/types/components/x-form-builder/services/forms/validators.d.ts +1 -0
- package/dist/types/components/x-form-builder/services/schema/form-mapping.d.ts +4 -0
- package/dist/types/components/x-form-builder/services/schema/formula-builder.d.ts +29 -0
- package/dist/types/components/x-form-builder/services/schema/schema-builder.d.ts +6 -1
- package/dist/types/components/x-form-builder/types/common/common-types.d.ts +5 -0
- package/dist/types/components/x-form-builder/types/common/field-types-enum.d.ts +1 -1
- package/dist/types/components/x-form-builder/types/common/index.d.ts +1 -0
- package/dist/types/components/x-form-builder/types/common/ui-types.d.ts +28 -0
- package/dist/types/components/x-form-builder/types/common/validation-types.d.ts +1 -1
- package/dist/types/components/x-form-builder/types/fields/base-field.d.ts +4 -1
- package/dist/types/components/x-form-builder/types/fields/datetime-file-fields.d.ts +10 -3
- package/dist/types/components/x-form-builder/types/fields/display-fields.d.ts +3 -0
- package/dist/types/components/x-form-builder/types/fields/form-field-union.d.ts +4 -4
- package/dist/types/components/x-form-builder/types/fields/input-fields.d.ts +5 -0
- package/dist/types/components/x-form-builder/types/fields/layout-fields.d.ts +20 -2
- package/dist/types/components/x-form-builder/types/fields/selection-fields.d.ts +11 -4
- package/dist/types/components/x-form-builder/types/form/schema-types.d.ts +7 -3
- package/dist/types/components/x-form-builder/utils/values.d.ts +1 -1
- package/dist/types/components/x-form-builder/x-form-builder.d.ts +9 -3
- package/dist/types/components/x-icon/icons.d.ts +12 -2716
- package/dist/types/components/x-icon/x-icon.d.ts +1 -1
- package/dist/types/components/x-input/types.d.ts +1 -1
- package/dist/types/components/x-input/x-input.d.ts +6 -0
- package/dist/types/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.d.ts +39 -0
- package/dist/types/components/x-input-icon/types.d.ts +9 -0
- package/dist/types/components/x-input-icon/x-input-icon.d.ts +150 -0
- package/dist/types/components/x-input-number/x-input-number.d.ts +5 -0
- package/dist/types/components/x-layout/x-layout.d.ts +2 -1
- package/dist/types/components/x-layout-admin/x-layout-admin.d.ts +23 -0
- package/dist/types/components/x-layout-detail/x-layout-detail.d.ts +86 -0
- package/dist/types/components/x-layout-list/types.d.ts +100 -0
- package/dist/types/components/x-layout-list/x-layout-list.d.ts +107 -0
- package/dist/types/components/x-login/types.d.ts +113 -0
- package/dist/types/components/x-login/x-login.d.ts +126 -0
- package/dist/types/components/x-message/message-service.d.ts +1 -1
- package/dist/types/components/x-modal/x-modal.d.ts +31 -6
- package/dist/types/components/x-modal-content/x-modal-content.d.ts +24 -0
- package/dist/types/components/x-notification/notification-service.d.ts +1 -1
- package/dist/types/components/x-qr-code/x-qr-code.d.ts +2 -0
- package/dist/types/components/x-select/select-dropdown-content/index.d.ts +1 -1
- package/dist/types/components/x-tab-pane/x-tab-pane.d.ts +11 -0
- package/dist/types/components/x-table/types.d.ts +3 -0
- package/dist/types/components/x-table/x-table.d.ts +15 -4
- package/dist/types/components/x-tabs/types.d.ts +9 -0
- package/dist/types/components/x-tabs/x-tabs.d.ts +40 -1
- package/dist/types/components/x-time-picker/time-picker-dropdown-content/index.d.ts +1 -1
- package/dist/types/components/x-transfer/types.d.ts +3 -1
- package/dist/types/components/x-upload/types.d.ts +14 -0
- package/dist/types/components/x-upload/x-upload.d.ts +34 -7
- package/dist/types/components.d.ts +1304 -70
- package/dist/types/index.d.ts +2 -0
- package/dist/types/locales/locale.service.d.ts +3 -3
- package/dist/types/types.d.ts +2 -0
- package/dist/types/utils/code-editor/ast-parser.d.ts +5 -0
- package/dist/types/utils/code-editor/autocomplete-db.d.ts +10 -0
- package/dist/types/utils/code-editor/history.d.ts +19 -0
- package/dist/types/utils/code-editor/index.d.ts +4 -0
- package/dist/types/utils/code-editor/plugin-system.d.ts +31 -0
- package/dist/types/utils/code-editor/tokenizer.d.ts +2 -0
- package/dist/types/utils/form/types.d.ts +1 -1
- package/dist/types/utils/table.service.d.ts +2 -1
- package/dist/xlabs/index.esm.js +1 -0
- package/dist/xlabs/p-0139d27f.entry.js +1 -0
- package/dist/xlabs/p-04985e4d.entry.js +1 -0
- package/dist/xlabs/p-05a79f30.entry.js +1 -0
- package/dist/xlabs/p-0a08e0c8.entry.js +1 -0
- package/dist/xlabs/p-0d5fb8de.entry.js +1 -0
- package/dist/{xlabs-store/p-cd3c3374.entry.js → xlabs/p-121911e5.entry.js} +1 -1
- package/dist/xlabs/p-1260ad3b.entry.js +1 -0
- package/dist/xlabs/p-1c0ee15c.entry.js +1 -0
- package/dist/{xlabs-store/p-023259c9.entry.js → xlabs/p-1cd3b259.entry.js} +1 -1
- package/dist/xlabs/p-239cf367.entry.js +1 -0
- package/dist/xlabs/p-2451ab24.entry.js +1 -0
- package/dist/xlabs/p-2ab3bc58.entry.js +1 -0
- package/dist/xlabs/p-2f9d0da7.entry.js +1 -0
- package/dist/xlabs/p-302ab3b9.entry.js +1 -0
- package/dist/xlabs/p-31029063.entry.js +1 -0
- package/dist/xlabs/p-31c814c2.entry.js +1 -0
- package/dist/xlabs/p-3f5b28e5.entry.js +1 -0
- package/dist/xlabs/p-43d10a6e.entry.js +1 -0
- package/dist/xlabs/p-45fda37b.entry.js +1 -0
- package/dist/xlabs/p-4bf9b6f7.entry.js +1 -0
- package/dist/xlabs/p-5ab9ce39.entry.js +1 -0
- package/dist/xlabs/p-5e495388.entry.js +1 -0
- package/dist/xlabs/p-6039e514.entry.js +1 -0
- package/dist/xlabs/p-674527b2.entry.js +1 -0
- package/dist/xlabs/p-68056c0e.entry.js +1 -0
- package/dist/xlabs/p-6d7480c0.entry.js +1 -0
- package/dist/xlabs/p-7697ef47.entry.js +1 -0
- package/dist/xlabs/p-7b8bdd79.entry.js +1 -0
- package/dist/xlabs/p-7f9a80e0.entry.js +1 -0
- package/dist/xlabs/p-948a032e.entry.js +1 -0
- package/dist/{xlabs-store/p-7a8f11b4.entry.js → xlabs/p-9ae3501d.entry.js} +1 -1
- package/dist/xlabs/p-9b3a4aa6.entry.js +1 -0
- package/dist/xlabs/p-9c1cc5ff.entry.js +1 -0
- package/dist/xlabs/p-BMTt8QT3.js +2 -0
- package/dist/xlabs/p-BgCjF74f.js +1 -0
- package/dist/xlabs/p-D7kqIlVo.js +1 -0
- package/dist/{xlabs-store/p-Co3Y9VjQ.js → xlabs/p-DSa1uqPO.js} +1 -1
- package/dist/{xlabs-store/p-c0ca6f7d.entry.js → xlabs/p-a2d14538.entry.js} +1 -1
- package/dist/xlabs/p-a415c8c1.entry.js +1 -0
- package/dist/{xlabs-store/p-fdec5d89.entry.js → xlabs/p-aba80f73.entry.js} +1 -1
- package/dist/xlabs/p-bc5969e0.entry.js +1 -0
- package/dist/xlabs/p-bef8def9.entry.js +1 -0
- package/dist/xlabs/p-cc57e705.entry.js +1 -0
- package/dist/xlabs/p-d11de492.entry.js +1 -0
- package/dist/xlabs/p-d4558f7b.entry.js +1 -0
- package/dist/xlabs/p-d921a2c7.entry.js +1 -0
- package/dist/xlabs/p-df10e5a1.entry.js +1 -0
- package/dist/xlabs/p-e1a1acbe.entry.js +1 -0
- package/dist/xlabs/p-eab901c4.entry.js +1 -0
- package/dist/xlabs/p-edcb4001.entry.js +1 -0
- package/dist/xlabs/p-f07d9ee7.entry.js +1 -0
- package/dist/xlabs/p-f280faed.entry.js +1 -0
- package/dist/xlabs/p-f5b96f2a.entry.js +1 -0
- package/dist/xlabs/p-f6950840.entry.js +1 -0
- package/dist/{xlabs-store/p-96b1939d.entry.js → xlabs/p-f69d2b16.entry.js} +1 -1
- package/dist/{xlabs-store/p-8bcbb4e3.entry.js → xlabs/p-fd003457.entry.js} +1 -1
- package/dist/xlabs/p-xf66Fag-.js +1 -0
- package/dist/xlabs/xlabs.css +2 -0
- package/dist/xlabs/xlabs.esm.js +1 -0
- package/loader/cdn.js +0 -0
- package/loader/index.cjs.js +0 -0
- package/loader/index.d.ts +0 -0
- package/loader/index.es2017.js +0 -0
- package/loader/index.js +0 -0
- package/package.json +65 -69
- package/readme.md +107 -50
- package/components/p-5c86X8JO.js +0 -1
- package/components/p-6KpqCGp9.js +0 -1
- package/components/p-ADwHM_jT.js +0 -1
- package/components/p-AgSyA7Ia.js +0 -1
- package/components/p-B-7Hwizp.js +0 -1
- package/components/p-B-ClGFfy.js +0 -1
- package/components/p-B4rO7Sgt.js +0 -1
- package/components/p-B5Syz0fw.js +0 -1
- package/components/p-B6p-mzW-.js +0 -1
- package/components/p-B8SZP5Xz.js +0 -1
- package/components/p-BBGHXZqR.js +0 -1
- package/components/p-BHLvuyOq.js +0 -1
- package/components/p-BOCR5Zk0.js +0 -1
- package/components/p-BRBrLtOz.js +0 -1
- package/components/p-BSRP2TGa.js +0 -1
- package/components/p-BUjRcJoK.js +0 -1
- package/components/p-BVeQ5W_G.js +0 -1
- package/components/p-BVnVlCcd.js +0 -1
- package/components/p-BZQcq9R_.js +0 -1
- package/components/p-BeIFU-wn.js +0 -1
- package/components/p-BkEgl31q.js +0 -1
- package/components/p-BkPJ1Whr.js +0 -1
- package/components/p-BkevSugc.js +0 -1
- package/components/p-BkiOFW3H.js +0 -1
- package/components/p-BskMfHyY.js +0 -1
- package/components/p-Bu2JqZs8.js +0 -1
- package/components/p-BvjR2Q5Q.js +0 -1
- package/components/p-Bz7MhZ4K.js +0 -1
- package/components/p-C3gvR6nN.js +0 -1
- package/components/p-C70KKm8p.js +0 -1
- package/components/p-C7csgUoA.js +0 -1
- package/components/p-CAPfC5Vn.js +0 -1
- package/components/p-CEBSDVyp.js +0 -1
- package/components/p-CFB6xkAX.js +0 -1
- package/components/p-CGIxdOEm.js +0 -1
- package/components/p-CHRrsVXB.js +0 -1
- package/components/p-CKUzvJue.js +0 -1
- package/components/p-CRBPzT4B.js +0 -1
- package/components/p-CSfrs76m.js +0 -1
- package/components/p-C_ZBjXFP.js +0 -1
- package/components/p-Ce5L9qbY.js +0 -1
- package/components/p-CeBfFEIa.js +0 -1
- package/components/p-Ck6SW8G3.js +0 -1
- package/components/p-D7ijqXRY.js +0 -1
- package/components/p-D7n-26Q5.js +0 -1
- package/components/p-D8ew7Rgv.js +0 -1
- package/components/p-DBk4T-b-.js +0 -1
- package/components/p-DD-W_fMF.js +0 -1
- package/components/p-DElCk9ta.js +0 -1
- package/components/p-DEumEVI3.js +0 -1
- package/components/p-DGqQ8PT4.js +0 -1
- package/components/p-DJ1WhSJ4.js +0 -1
- package/components/p-DOxXxhXb.js +0 -1
- package/components/p-DRa4o4c6.js +0 -1
- package/components/p-DTlSrH8_.js +0 -1
- package/components/p-DTvD0UO5.js +0 -1
- package/components/p-DZFphzg1.js +0 -1
- package/components/p-DZPUUptR.js +0 -1
- package/components/p-D_xaGiZU.js +0 -1
- package/components/p-DaL42JUi.js +0 -1
- package/components/p-DbRpEXwX.js +0 -1
- package/components/p-Dg0xgMke.js +0 -1
- package/components/p-Dky_8i8S.js +0 -1
- package/components/p-DlwlBBr4.js +0 -1
- package/components/p-DoTf8yXn.js +0 -1
- package/components/p-DphUq6Z5.js +0 -1
- package/components/p-DsgWQbJY.js +0 -1
- package/components/p-Dx3yBe39.js +0 -1
- package/components/p-DxKMnrS8.js +0 -1
- package/components/p-O88oQkR1.js +0 -1
- package/components/p-PlUkLT0A.js +0 -1
- package/components/p-QTSiPk0I.js +0 -1
- package/components/p-TC9DZAbC.js +0 -1
- package/components/p-bVsOg7S9.js +0 -1
- package/components/p-ccpcKv5U.js +0 -1
- package/components/p-en06CSUT.js +0 -1
- package/components/p-g6ZBqIze.js +0 -1
- package/dist/cjs/types-DQ-V76ZQ.js +0 -255
- package/dist/cjs/x-address_14.cjs.entry.js +0 -12577
- package/dist/cjs/x-auto-complete-dropdown-content.cjs.entry.js +0 -69
- package/dist/cjs/x-avatar.cjs.entry.js +0 -269
- package/dist/cjs/x-button.cjs.entry.js +0 -174
- package/dist/cjs/x-card_12.cjs.entry.js +0 -1386
- package/dist/cjs/x-cascader-dropdown-content.cjs.entry.js +0 -364
- package/dist/cjs/x-checkbox_5.cjs.entry.js +0 -1376
- package/dist/cjs/x-color-picker-panel_2.cjs.entry.js +0 -873
- package/dist/cjs/x-color-picker_9.cjs.entry.js +0 -3085
- package/dist/cjs/x-date-picker-dropdown-content.cjs.entry.js +0 -757
- package/dist/cjs/x-dropdown_2.cjs.entry.js +0 -735
- package/dist/cjs/x-empty.cjs.entry.js +0 -64
- package/dist/cjs/x-form-builder.cjs.entry.js +0 -807
- package/dist/cjs/x-icon.cjs.entry.js +0 -144
- package/dist/cjs/x-list.cjs.entry.js +0 -138
- package/dist/cjs/x-modal-content.cjs.entry.js +0 -217
- package/dist/cjs/x-range-picker-dropdown-content.cjs.entry.js +0 -821
- package/dist/cjs/x-select_2.cjs.entry.js +0 -1316
- package/dist/cjs/x-spin.cjs.entry.js +0 -62
- package/dist/cjs/x-tab-pane.cjs.entry.js +0 -73
- package/dist/cjs/x-tabs.cjs.entry.js +0 -609
- package/dist/cjs/x-time-picker-dropdown-content.cjs.entry.js +0 -389
- package/dist/cjs/x-tree-select-dropdown-content.cjs.entry.js +0 -439
- package/dist/cjs/xlabs-store.cjs.js +0 -24
- package/dist/esm/types-C_QdJRdB.js +0 -253
- package/dist/esm/x-address_14.entry.js +0 -12562
- package/dist/esm/x-auto-complete-dropdown-content.entry.js +0 -67
- package/dist/esm/x-avatar.entry.js +0 -267
- package/dist/esm/x-button.entry.js +0 -172
- package/dist/esm/x-card_12.entry.js +0 -1373
- package/dist/esm/x-cascader-dropdown-content.entry.js +0 -362
- package/dist/esm/x-checkbox_5.entry.js +0 -1370
- package/dist/esm/x-color-picker-panel_2.entry.js +0 -870
- package/dist/esm/x-color-picker_9.entry.js +0 -3075
- package/dist/esm/x-date-picker-dropdown-content.entry.js +0 -755
- package/dist/esm/x-dropdown_2.entry.js +0 -732
- package/dist/esm/x-empty.entry.js +0 -62
- package/dist/esm/x-form-builder.entry.js +0 -805
- package/dist/esm/x-icon.entry.js +0 -142
- package/dist/esm/x-list.entry.js +0 -136
- package/dist/esm/x-modal-content.entry.js +0 -215
- package/dist/esm/x-range-picker-dropdown-content.entry.js +0 -819
- package/dist/esm/x-select_2.entry.js +0 -1313
- package/dist/esm/x-spin.entry.js +0 -60
- package/dist/esm/x-tab-pane.entry.js +0 -71
- package/dist/esm/x-tabs.entry.js +0 -607
- package/dist/esm/x-time-picker-dropdown-content.entry.js +0 -387
- package/dist/esm/x-tree-select-dropdown-content.entry.js +0 -437
- package/dist/esm/xlabs-store.js +0 -20
- package/dist/xlabs-store/index.esm.js +0 -1
- package/dist/xlabs-store/p-016194dc.entry.js +0 -1
- package/dist/xlabs-store/p-04a3721a.entry.js +0 -1
- package/dist/xlabs-store/p-072445b7.entry.js +0 -1
- package/dist/xlabs-store/p-0ec21454.entry.js +0 -1
- package/dist/xlabs-store/p-12b6a843.entry.js +0 -1
- package/dist/xlabs-store/p-1a81cf09.entry.js +0 -1
- package/dist/xlabs-store/p-1b019aeb.entry.js +0 -1
- package/dist/xlabs-store/p-262a0673.entry.js +0 -1
- package/dist/xlabs-store/p-34cce823.entry.js +0 -1
- package/dist/xlabs-store/p-3a9fdefe.entry.js +0 -1
- package/dist/xlabs-store/p-40036100.entry.js +0 -1
- package/dist/xlabs-store/p-45f04e8d.entry.js +0 -1
- package/dist/xlabs-store/p-48ba7c34.entry.js +0 -1
- package/dist/xlabs-store/p-48e2c26e.entry.js +0 -1
- package/dist/xlabs-store/p-4ac2e915.entry.js +0 -1
- package/dist/xlabs-store/p-4d7c2a35.entry.js +0 -1
- package/dist/xlabs-store/p-4f67cb33.entry.js +0 -1
- package/dist/xlabs-store/p-502b345e.entry.js +0 -1
- package/dist/xlabs-store/p-555c5e48.entry.js +0 -1
- package/dist/xlabs-store/p-5878525f.entry.js +0 -1
- package/dist/xlabs-store/p-5abbdca7.entry.js +0 -1
- package/dist/xlabs-store/p-6243ca69.entry.js +0 -1
- package/dist/xlabs-store/p-64e7a057.entry.js +0 -1
- package/dist/xlabs-store/p-6530d2ef.entry.js +0 -1
- package/dist/xlabs-store/p-675a39e1.entry.js +0 -1
- package/dist/xlabs-store/p-689c52ef.entry.js +0 -1
- package/dist/xlabs-store/p-69b8cb7d.entry.js +0 -1
- package/dist/xlabs-store/p-6b121c60.entry.js +0 -1
- package/dist/xlabs-store/p-6c75fc39.entry.js +0 -1
- package/dist/xlabs-store/p-6f705deb.entry.js +0 -1
- package/dist/xlabs-store/p-723d362c.entry.js +0 -1
- package/dist/xlabs-store/p-783545e3.entry.js +0 -1
- package/dist/xlabs-store/p-81fb4caf.entry.js +0 -1
- package/dist/xlabs-store/p-863dd67d.entry.js +0 -1
- package/dist/xlabs-store/p-8bcc219a.entry.js +0 -1
- package/dist/xlabs-store/p-914b0ae2.entry.js +0 -1
- package/dist/xlabs-store/p-9ac291ea.entry.js +0 -1
- package/dist/xlabs-store/p-9de03a07.entry.js +0 -1
- package/dist/xlabs-store/p-C_QdJRdB.js +0 -1
- package/dist/xlabs-store/p-Ce5L9qbY.js +0 -1
- package/dist/xlabs-store/p-DElCk9ta.js +0 -1
- package/dist/xlabs-store/p-a4223feb.entry.js +0 -1
- package/dist/xlabs-store/p-a8c2eca7.entry.js +0 -1
- package/dist/xlabs-store/p-ac9ba3aa.entry.js +0 -1
- package/dist/xlabs-store/p-bd5084b8.entry.js +0 -1
- package/dist/xlabs-store/p-bda322db.entry.js +0 -1
- package/dist/xlabs-store/p-c4c8840c.entry.js +0 -1
- package/dist/xlabs-store/p-c4d0ce0d.entry.js +0 -1
- package/dist/xlabs-store/p-cf4697bc.entry.js +0 -1
- package/dist/xlabs-store/p-d2ec3d4a.entry.js +0 -1
- package/dist/xlabs-store/p-d4d00aff.entry.js +0 -1
- package/dist/xlabs-store/p-d9d0147b.entry.js +0 -1
- package/dist/xlabs-store/p-dd930f2a.entry.js +0 -1
- package/dist/xlabs-store/p-e04836e8.entry.js +0 -1
- package/dist/xlabs-store/p-e14b5f6d.entry.js +0 -1
- package/dist/xlabs-store/p-eb1dd3c2.entry.js +0 -1
- package/dist/xlabs-store/p-f02155e4.entry.js +0 -1
- package/dist/xlabs-store/p-f1331938.entry.js +0 -1
- package/dist/xlabs-store/p-fac0b689.entry.js +0 -1
- package/dist/xlabs-store/p-fd2e1d9c.entry.js +0 -1
- package/dist/xlabs-store/p-ffba56b2.entry.js +0 -1
- package/dist/xlabs-store/p-ig_mFsVk.js +0 -2
- package/dist/xlabs-store/xlabs-store.css +0 -1
- package/dist/xlabs-store/xlabs-store.esm.js +0 -1
- /package/components/{p-XBF88YT_.js → p-BtYiIQqg.js} +0 -0
- /package/components/{p-D66tF8_2.js → p-DFADJBLL.js} +0 -0
- /package/components/{p-COpzIi1n.js → p-DM8AggMt.js} +0 -0
- /package/components/{p-BPeosvTA.js → p-RKpMhZmc.js} +0 -0
- /package/components/{p-Dgxy93Bg.js → p-iG9CbEpE.js} +0 -0
- /package/dist/{xlabs-store → xlabs}/fonts/xlabs-outlined.woff2 +0 -0
- /package/dist/{xlabs-store → xlabs}/fonts/xlabs-rounded.woff2 +0 -0
- /package/dist/{xlabs-store → xlabs}/fonts/xlabs-solided.woff2 +0 -0
- /package/dist/{xlabs-store/p-XBF88YT_.js → xlabs/p-BtYiIQqg.js} +0 -0
- /package/dist/{xlabs-store/p-D66tF8_2.js → xlabs/p-DFADJBLL.js} +0 -0
- /package/dist/{xlabs-store/p-COpzIi1n.js → xlabs/p-DM8AggMt.js} +0 -0
- /package/dist/{xlabs-store/p-BPeosvTA.js → xlabs/p-RKpMhZmc.js} +0 -0
- /package/dist/{xlabs-store/p-Dgxy93Bg.js → xlabs/p-iG9CbEpE.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h
|
|
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
|
-
|
|
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
|
-
|
|
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 ?
|
|
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 ?
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
?
|
|
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
|
-
|
|
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
|
|
312
|
-
const
|
|
313
|
-
|
|
314
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 :
|
|
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 :
|
|
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:
|
|
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 :
|
|
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 :
|
|
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 :
|
|
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 :
|
|
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
|
-
|
|
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:
|
|
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 ?
|
|
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:
|
|
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:
|
|
462
|
+
}, onXChange: ev => {
|
|
472
463
|
console.log('x-form-builder: Table changed:', ev.detail);
|
|
473
|
-
} }, columns
|
|
474
|
-
|
|
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:
|
|
482
|
-
return action.tooltip ?
|
|
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
|
-
|
|
570
|
-
|
|
571
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
728
|
+
this.asyncBuilderForm(true);
|
|
729
|
+
}
|
|
730
|
+
handleValueChange() {
|
|
731
|
+
if (this._isInternalChange)
|
|
732
|
+
return;
|
|
733
|
+
this.asyncBuilderForm(true);
|
|
599
734
|
}
|
|
600
|
-
|
|
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
|
-
|
|
622
|
-
|
|
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: {
|
|
654
|
-
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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 &&
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
1271
|
+
"methodName": "handleValueChange"
|
|
1272
|
+
}, {
|
|
1273
|
+
"propName": "schema",
|
|
1274
|
+
"methodName": "handleSchemaChange"
|
|
1012
1275
|
}, {
|
|
1013
1276
|
"propName": "context",
|
|
1014
|
-
"methodName": "
|
|
1277
|
+
"methodName": "handleSchemaChange"
|
|
1015
1278
|
}];
|
|
1016
1279
|
}
|
|
1017
1280
|
}
|