@erpsquad/common 1.8.81 → 1.8.82
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/CHANGELOG.md +253 -253
- package/README.md +979 -979
- package/dist/_virtual/index/index.esm10.js +3 -3
- package/dist/_virtual/index/index.esm11.js +3 -3
- package/dist/_virtual/index/index.esm4.js +1 -1
- package/dist/_virtual/index/index.esm5.js +3 -3
- package/dist/_virtual/index/index.esm6.js +3 -3
- package/dist/_virtual/index/index.esm7.js +3 -3
- package/dist/_virtual/index/index.esm8.js +3 -3
- package/dist/_virtual/index/index.esm9.js +3 -3
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/_virtual/index/index4.js +1 -1
- package/dist/_virtual/index/index5.js +1 -1
- package/dist/_virtual/index/index6.js +1 -1
- package/dist/_virtual/index/index7.js +1 -1
- package/dist/_virtual/index/index8.js +1 -1
- package/dist/_virtual/index/index9.js +1 -1
- package/dist/api-client/api.accounting/api/index.esm.js.map +1 -1
- package/dist/api-client/api.accounting/api/index.js.map +1 -1
- package/dist/api-client/api.accounting/api-types.d.ts +15883 -15883
- package/dist/api-client/api.drive/api/index.esm.js.map +1 -1
- package/dist/api-client/api.drive/api/index.js.map +1 -1
- package/dist/api-client/api.drive/api-types.d.ts +696 -696
- package/dist/api-client/api.hrms/api/index.esm.js.map +1 -1
- package/dist/api-client/api.hrms/api/index.js.map +1 -1
- package/dist/api-client/api.inventory/api/index.esm.js.map +1 -1
- package/dist/api-client/api.inventory/api/index.js.map +1 -1
- package/dist/api-client/api.inventory/api-types.d.ts +6110 -6110
- package/dist/api-client/api.manufacturing/api/index.esm.js.map +1 -1
- package/dist/api-client/api.manufacturing/api/index.js.map +1 -1
- package/dist/api-client/api.manufacturing/api-types.d.ts +10066 -10066
- package/dist/api-client/api.purchase/api/index.esm.js.map +1 -1
- package/dist/api-client/api.purchase/api/index.js.map +1 -1
- package/dist/api-client/api.purchase/api-types.d.ts +6715 -6715
- package/dist/api-client/api.rbac/api/index.esm.js.map +1 -1
- package/dist/api-client/api.rbac/api/index.esm2.js.map +1 -1
- package/dist/api-client/api.rbac/api/index.js.map +1 -1
- package/dist/api-client/api.rbac/api/index2.js.map +1 -1
- package/dist/api-client/api.rbac/api-types.d.ts +1753 -1753
- package/dist/api-client/api.rental/api/index.esm.js.map +1 -1
- package/dist/api-client/api.rental/api/index.js.map +1 -1
- package/dist/api-client/api.rental/api-types.d.ts +15666 -15666
- package/dist/api-client/api.sales/api/index.esm.js.map +1 -1
- package/dist/api-client/api.sales/api/index.js.map +1 -1
- package/dist/api-client/api.sales/api-types.d.ts +8258 -8258
- package/dist/api-client/api.system-feature/api/index.esm.js.map +1 -1
- package/dist/api-client/api.system-feature/api/index.js.map +1 -1
- package/dist/api-client/api.system-feature/api-types.d.ts +2875 -2875
- package/dist/api-client/api.user/api/index.esm.js.map +1 -1
- package/dist/api-client/api.user/api/index.js.map +1 -1
- package/dist/api-client/api.user/api-types.d.ts +95 -95
- package/dist/api-client/api.workflow-automation/api/index.esm.js.map +1 -1
- package/dist/api-client/api.workflow-automation/api/index.js.map +1 -1
- package/dist/api-client/index.d.ts +39 -39
- package/dist/components/accordion/accordion/index.esm.js.map +1 -1
- package/dist/components/accordion/accordion/index.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
- package/dist/components/action-bar/action-bar/index.js +5 -5
- package/dist/components/action-bar/action-bar/index.js.map +1 -1
- package/dist/components/action-bar/action-bar.d.ts +1 -1
- package/dist/components/activity-tag/activity-tag/index.esm.js.map +1 -1
- package/dist/components/activity-tag/activity-tag/index.js.map +1 -1
- package/dist/components/alert/alert/index.esm.js.map +1 -1
- package/dist/components/alert/alert/index.js.map +1 -1
- package/dist/components/button/button/index.esm.js.map +1 -1
- package/dist/components/button/button/index.js.map +1 -1
- package/dist/components/change-user-password-modal/change-user-password-modal/index.esm.js.map +1 -1
- package/dist/components/change-user-password-modal/change-user-password-modal/index.js.map +1 -1
- package/dist/components/checkbox/checkbox/index.esm.js.map +1 -1
- package/dist/components/checkbox/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +1 -1
- package/dist/components/chip/chip/index.esm.js.map +1 -1
- package/dist/components/chip/chip/index.js.map +1 -1
- package/dist/components/chip-generator/chip-generator/index.esm.js.map +1 -1
- package/dist/components/chip-generator/chip-generator/index.js.map +1 -1
- package/dist/components/date-picker/date-picker/index.esm.js.map +1 -1
- package/dist/components/date-picker/date-picker/index.js.map +1 -1
- package/dist/components/date-picker/date-picker.d.ts +1 -1
- package/dist/components/date-time-picker/date-time-picker/index.esm.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker/index.js.map +1 -1
- package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
- package/dist/components/editor/custom-editor/index.js.map +1 -1
- package/dist/components/filter/components/delete-group/index.esm.js +0 -1
- package/dist/components/filter/components/delete-group/index.esm.js.map +1 -1
- package/dist/components/filter/components/delete-group/index.js +1 -1
- package/dist/components/filter/components/delete-group/index.js.map +1 -1
- package/dist/components/filter/filter/index.esm.js +1 -1
- package/dist/components/filter/filter/index.esm.js.map +1 -1
- package/dist/components/filter/filter/index.js +7 -7
- package/dist/components/filter/filter/index.js.map +1 -1
- package/dist/components/footer/footer.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/components/header/header/index.esm.js.map +1 -1
- package/dist/components/header/header/index.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.js +1 -1
- package/dist/components/header/redux/actionCreator/index.js.map +1 -1
- package/dist/components/icons/action/index.esm.js.map +1 -1
- package/dist/components/icons/action/index.js.map +1 -1
- package/dist/components/icons/action-arrow.d.ts +3 -3
- package/dist/components/icons/add-circle.d.ts +3 -3
- package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/components/icons/arrow-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/components/icons/assignments.d.ts +3 -3
- package/dist/components/icons/blank-circle.d.ts +3 -3
- package/dist/components/icons/block-filled.d.ts +3 -3
- package/dist/components/icons/calendar-add.d.ts +3 -3
- package/dist/components/icons/calendar.d.ts +3 -3
- package/dist/components/icons/checkbox-square.d.ts +3 -3
- package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/components/icons/clock.d.ts +3 -3
- package/dist/components/icons/close.d.ts +3 -3
- package/dist/components/icons/coin-outline.d.ts +3 -3
- package/dist/components/icons/copy.d.ts +3 -3
- package/dist/components/icons/coupon.d.ts +3 -3
- package/dist/components/icons/criteria/index.esm.js.map +1 -1
- package/dist/components/icons/criteria/index.js.map +1 -1
- package/dist/components/icons/cross/index.esm.js.map +1 -1
- package/dist/components/icons/cross/index.js.map +1 -1
- package/dist/components/icons/cross-hire.d.ts +3 -3
- package/dist/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/components/icons/dashboard.d.ts +3 -3
- package/dist/components/icons/document-download.d.ts +3 -3
- package/dist/components/icons/document.d.ts +3 -3
- package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/components/icons/dollar-circle.d.ts +3 -3
- package/dist/components/icons/edit.d.ts +3 -3
- package/dist/components/icons/email.d.ts +3 -3
- package/dist/components/icons/export.d.ts +3 -3
- package/dist/components/icons/eye-off.d.ts +3 -3
- package/dist/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/components/icons/eye.d.ts +3 -3
- package/dist/components/icons/filled-circle.d.ts +3 -3
- package/dist/components/icons/filter-remove.d.ts +3 -3
- package/dist/components/icons/filter.d.ts +3 -3
- package/dist/components/icons/folder-save.d.ts +3 -3
- package/dist/components/icons/grid.d.ts +3 -3
- package/dist/components/icons/hashtag.d.ts +3 -3
- package/dist/components/icons/image.d.ts +3 -3
- package/dist/components/icons/import.d.ts +3 -3
- package/dist/components/icons/info-circle.d.ts +3 -3
- package/dist/components/icons/info.d.ts +3 -3
- package/dist/components/icons/link-horizontal.d.ts +3 -3
- package/dist/components/icons/link.d.ts +3 -3
- package/dist/components/icons/location.d.ts +3 -3
- package/dist/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/components/icons/lowest-price.d.ts +3 -3
- package/dist/components/icons/more.d.ts +3 -3
- package/dist/components/icons/notification.d.ts +3 -3
- package/dist/components/icons/paper-clip.d.ts +3 -3
- package/dist/components/icons/paragraph.d.ts +3 -3
- package/dist/components/icons/payment-request.d.ts +3 -3
- package/dist/components/icons/phone.d.ts +3 -3
- package/dist/components/icons/printer.d.ts +3 -3
- package/dist/components/icons/process-calendar.d.ts +3 -3
- package/dist/components/icons/promotion.d.ts +3 -3
- package/dist/components/icons/radio-button.d.ts +3 -3
- package/dist/components/icons/receipt-filled.d.ts +3 -3
- package/dist/components/icons/receipt-outline.d.ts +3 -3
- package/dist/components/icons/receipt.d.ts +3 -3
- package/dist/components/icons/refresh-icon.d.ts +3 -3
- package/dist/components/icons/replace.d.ts +3 -3
- package/dist/components/icons/save.d.ts +3 -3
- package/dist/components/icons/search-status.d.ts +3 -3
- package/dist/components/icons/search.d.ts +3 -3
- package/dist/components/icons/settings-fallback.d.ts +3 -3
- package/dist/components/icons/share/index.esm.js.map +1 -1
- package/dist/components/icons/share/index.js.map +1 -1
- package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/components/icons/stacked-layer.d.ts +3 -3
- package/dist/components/icons/start-filled.d.ts +3 -3
- package/dist/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/components/icons/tick-circle.d.ts +3 -3
- package/dist/components/icons/tick-octagon.d.ts +3 -3
- package/dist/components/icons/tick.d.ts +3 -3
- package/dist/components/icons/toggle-switch.d.ts +3 -3
- package/dist/components/icons/trash.d.ts +3 -3
- package/dist/components/icons/wave.d.ts +3 -3
- package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/components/icons/work-centre.d.ts +3 -3
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/label-value/label-value/index.esm.js.map +1 -1
- package/dist/components/label-value/label-value/index.js.map +1 -1
- package/dist/components/listing/listing/index.esm.js.map +1 -1
- package/dist/components/listing/listing/index.js.map +1 -1
- package/dist/components/loaders/erp-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/erp-loader/index.js.map +1 -1
- package/dist/components/loaders/form-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/form-loader/index.js.map +1 -1
- package/dist/components/loaders/modal-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/modal-loader/index.js.map +1 -1
- package/dist/components/loaders/page-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/page-loader/index.js.map +1 -1
- package/dist/components/location-select.d.ts +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table.d.ts +1 -1
- package/dist/components/material-table/material-table.d.ts +1 -1
- package/dist/components/menu/menu/index.esm.js.map +1 -1
- package/dist/components/menu/menu/index.js.map +1 -1
- package/dist/components/modal/modal/index.esm.js.map +1 -1
- package/dist/components/modal/modal/index.js.map +1 -1
- package/dist/components/page-navigator/page-navigator/index.esm.js.map +1 -1
- package/dist/components/page-navigator/page-navigator/index.js.map +1 -1
- package/dist/components/phone-input/phone-input.d.ts +1 -1
- package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
- package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/reset-password-modal/reset-password-modal/index.esm.js.map +1 -1
- package/dist/components/reset-password-modal/reset-password-modal/index.js.map +1 -1
- package/dist/components/search-bar/search-bar/index.esm.js.map +1 -1
- package/dist/components/search-bar/search-bar/index.js.map +1 -1
- package/dist/components/searchable-select/index.esm.js.map +1 -1
- package/dist/components/searchable-select/index.js.map +1 -1
- package/dist/components/select/controller/chip-or-placeholder/index.esm.js.map +1 -1
- package/dist/components/select/controller/chip-or-placeholder/index.js.map +1 -1
- package/dist/components/select/select/index.esm.js.map +1 -1
- package/dist/components/select/select/index.js.map +1 -1
- package/dist/components/select/select-search/index.esm.js.map +1 -1
- package/dist/components/select/select-search/index.js.map +1 -1
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
- package/dist/components/sub-header-doc/sub-header-doc/index.esm.js.map +1 -1
- package/dist/components/sub-header-doc/sub-header-doc/index.js.map +1 -1
- package/dist/components/switches/android-12-switch/index.esm.js.map +1 -1
- package/dist/components/switches/android-12-switch/index.js.map +1 -1
- package/dist/components/switches/android-12-switch.d.ts +3 -1
- package/dist/components/text-area/text-area/index.esm.js.map +1 -1
- package/dist/components/text-area/text-area/index.js.map +1 -1
- package/dist/components/text-field/text-field/index.esm.js.map +1 -1
- package/dist/components/text-field/text-field/index.js.map +1 -1
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/time-picker/time-picker/index.esm.js.map +1 -1
- package/dist/components/time-picker/time-picker/index.js.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +1 -1
- package/dist/components/toast/toast/index.esm.js.map +1 -1
- package/dist/components/toast/toast/index.js.map +1 -1
- package/dist/components/toggle/toggle/index.esm.js.map +1 -1
- package/dist/components/toggle/toggle/index.js.map +1 -1
- package/dist/components/typography/typography/index.esm.js.map +1 -1
- package/dist/components/typography/typography/index.js.map +1 -1
- package/dist/components/upload/upload/index.esm.js +2 -2
- package/dist/components/upload/upload/index.esm.js.map +1 -1
- package/dist/components/upload/upload/index.js +11 -11
- package/dist/components/upload/upload/index.js.map +1 -1
- package/dist/components/upload-media/upload-media.d.ts +1 -1
- package/dist/constants/defaultColumns/index.esm.js.map +1 -1
- package/dist/constants/defaultColumns/index.js.map +1 -1
- package/dist/constants/modules/index.esm.js.map +1 -1
- package/dist/constants/modules/index.js.map +1 -1
- package/dist/constants/pathnames/pathname/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.accounting/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.accounting/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.crm/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.crm/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.document/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.document/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.hrms/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.hrms/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.inventory/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.inventory/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.manufacturing/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.manufacturing/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.office/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.office/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.procurement/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.procurement/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.project/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.project/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.quotes/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.quotes/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.rental/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.rental/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.user/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.user/index.js.map +1 -1
- package/dist/constants/route-page-map/index.esm.js.map +1 -1
- package/dist/constants/route-page-map/index.js.map +1 -1
- package/dist/constants/status/index.esm.js.map +1 -1
- package/dist/constants/status/index.js.map +1 -1
- package/dist/contexts/AuthContext/index.esm.js +1 -1
- package/dist/contexts/AuthContext/index.esm.js.map +1 -1
- package/dist/contexts/AuthContext/index.js +1 -1
- package/dist/contexts/AuthContext/index.js.map +1 -1
- package/dist/contexts/languageContext/index.esm.js +1 -1
- package/dist/contexts/languageContext/index.esm.js.map +1 -1
- package/dist/contexts/languageContext/index.js +1 -1
- package/dist/contexts/languageContext/index.js.map +1 -1
- package/dist/contexts/page-context/index.esm.js.map +1 -1
- package/dist/contexts/page-context/index.js.map +1 -1
- package/dist/hooks/use-translations/index.esm.js.map +1 -1
- package/dist/hooks/use-translations/index.js.map +1 -1
- package/dist/hooks/useApi/index.esm.js.map +1 -1
- package/dist/hooks/useApi/index.js.map +1 -1
- package/dist/hooks/useDataFetcher/index.esm.js.map +1 -1
- package/dist/hooks/useDataFetcher/index.js.map +1 -1
- package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
- package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
- package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
- package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
- package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.esm.js +1 -1
- package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js +2 -2
- package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js.map +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
- package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
- package/dist/node_modules/{material-react-table/node_modules/@tanstack → @tanstack}/react-virtual/dist/esm/index/index.esm.js +2 -2
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +1 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +2 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +1 -0
- package/dist/node_modules/{@glideapps/glide-data-grid-cells/node_modules/@toast-ui → @toast-ui}/react-editor/dist/esm/index/index.esm.js +2 -2
- package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +1 -0
- package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +2 -0
- package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +1 -0
- package/dist/node_modules/material-react-table/dist/index.esm/index.esm.js +1 -1
- package/dist/node_modules/material-react-table/dist/index.esm/index.js +1 -1
- package/dist/node_modules/material-react-table/dist/index.esm/index.js.map +1 -1
- package/dist/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/redux/actionCreator/index.js.map +1 -1
- package/dist/redux/module-reducer/index.esm.js.map +1 -1
- package/dist/redux/module-reducer/index.js.map +1 -1
- package/dist/redux/store/index.esm.js.map +1 -1
- package/dist/redux/store/index.js.map +1 -1
- package/dist/server/index.esm.js.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/src/components/accordion/accordion.d.ts +1 -1
- package/dist/src/components/action-bar/action-bar.d.ts +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +1 -1
- package/dist/src/components/date-picker/date-picker.d.ts +1 -1
- package/dist/src/components/footer/footer.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/src/components/icons/action-arrow.d.ts +3 -3
- package/dist/src/components/icons/add-circle.d.ts +3 -3
- package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/src/components/icons/arrow-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/src/components/icons/assignments.d.ts +3 -3
- package/dist/src/components/icons/blank-circle.d.ts +3 -3
- package/dist/src/components/icons/block-filled.d.ts +3 -3
- package/dist/src/components/icons/calendar-add.d.ts +3 -3
- package/dist/src/components/icons/calendar.d.ts +3 -3
- package/dist/src/components/icons/checkbox-square.d.ts +3 -3
- package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/src/components/icons/clock.d.ts +3 -3
- package/dist/src/components/icons/close.d.ts +3 -3
- package/dist/src/components/icons/coin-outline.d.ts +3 -3
- package/dist/src/components/icons/copy.d.ts +3 -3
- package/dist/src/components/icons/coupon.d.ts +3 -3
- package/dist/src/components/icons/cross-hire.d.ts +3 -3
- package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/src/components/icons/dashboard.d.ts +3 -3
- package/dist/src/components/icons/document-download.d.ts +3 -3
- package/dist/src/components/icons/document.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle.d.ts +3 -3
- package/dist/src/components/icons/edit.d.ts +3 -3
- package/dist/src/components/icons/email.d.ts +3 -3
- package/dist/src/components/icons/export.d.ts +3 -3
- package/dist/src/components/icons/eye-off.d.ts +3 -3
- package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/src/components/icons/eye.d.ts +3 -3
- package/dist/src/components/icons/filled-circle.d.ts +3 -3
- package/dist/src/components/icons/filter-remove.d.ts +3 -3
- package/dist/src/components/icons/filter.d.ts +3 -3
- package/dist/src/components/icons/folder-save.d.ts +3 -3
- package/dist/src/components/icons/grid.d.ts +3 -3
- package/dist/src/components/icons/hashtag.d.ts +3 -3
- package/dist/src/components/icons/image.d.ts +3 -3
- package/dist/src/components/icons/import.d.ts +3 -3
- package/dist/src/components/icons/info-circle.d.ts +3 -3
- package/dist/src/components/icons/info.d.ts +3 -3
- package/dist/src/components/icons/link-horizontal.d.ts +3 -3
- package/dist/src/components/icons/link.d.ts +3 -3
- package/dist/src/components/icons/location.d.ts +3 -3
- package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/src/components/icons/lowest-price.d.ts +3 -3
- package/dist/src/components/icons/more.d.ts +3 -3
- package/dist/src/components/icons/notification.d.ts +3 -3
- package/dist/src/components/icons/paper-clip.d.ts +3 -3
- package/dist/src/components/icons/paragraph.d.ts +3 -3
- package/dist/src/components/icons/payment-request.d.ts +3 -3
- package/dist/src/components/icons/phone.d.ts +3 -3
- package/dist/src/components/icons/printer.d.ts +3 -3
- package/dist/src/components/icons/process-calendar.d.ts +3 -3
- package/dist/src/components/icons/promotion.d.ts +3 -3
- package/dist/src/components/icons/radio-button.d.ts +3 -3
- package/dist/src/components/icons/receipt-filled.d.ts +3 -3
- package/dist/src/components/icons/receipt-outline.d.ts +3 -3
- package/dist/src/components/icons/receipt.d.ts +3 -3
- package/dist/src/components/icons/refresh-icon.d.ts +3 -3
- package/dist/src/components/icons/replace.d.ts +3 -3
- package/dist/src/components/icons/save.d.ts +3 -3
- package/dist/src/components/icons/search-status.d.ts +3 -3
- package/dist/src/components/icons/search.d.ts +3 -3
- package/dist/src/components/icons/settings-fallback.d.ts +3 -3
- package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/src/components/icons/stacked-layer.d.ts +3 -3
- package/dist/src/components/icons/start-filled.d.ts +3 -3
- package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/tick-circle.d.ts +3 -3
- package/dist/src/components/icons/tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/tick.d.ts +3 -3
- package/dist/src/components/icons/toggle-switch.d.ts +3 -3
- package/dist/src/components/icons/trash.d.ts +3 -3
- package/dist/src/components/icons/wave.d.ts +3 -3
- package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/work-centre.d.ts +3 -3
- package/dist/src/components/location-select.d.ts +1 -1
- package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -1
- package/dist/src/components/material-table/material-table.d.ts +1 -1
- package/dist/src/components/phone-input/phone-input.d.ts +1 -1
- package/dist/src/components/radio/radio.d.ts +1 -1
- package/dist/src/components/select/select.d.ts +1 -1
- package/dist/src/components/switches/android-12-switch.d.ts +3 -1
- package/dist/src/components/text-field/text-field.d.ts +1 -1
- package/dist/src/components/time-picker/time-picker.d.ts +1 -1
- package/dist/src/components/upload-media/upload-media.d.ts +1 -1
- package/dist/src/utils/common-utility.d.ts +1 -1
- package/dist/style.css +69 -69
- package/dist/styles/index.d.ts +1 -1
- package/dist/theme/theme-impl/index.esm.js.map +1 -1
- package/dist/theme/theme-impl/index.js.map +1 -1
- package/dist/utils/api/index.esm.js +6 -6
- package/dist/utils/api/index.esm.js.map +1 -1
- package/dist/utils/api/index.js +1 -1
- package/dist/utils/api/index.js.map +1 -1
- package/dist/utils/common/index.esm.js +6 -6
- package/dist/utils/common/index.esm.js.map +1 -1
- package/dist/utils/common/index.js +1 -1
- package/dist/utils/common/index.js.map +1 -1
- package/dist/utils/common-utility.d.ts +1 -1
- package/dist/utils/date-range/index.esm.js.map +1 -1
- package/dist/utils/date-range/index.js.map +1 -1
- package/dist/utils/i18n/index.esm.js.map +1 -1
- package/dist/utils/i18n/index.js.map +1 -1
- package/dist/utils/menu-filter/index.esm.js.map +1 -1
- package/dist/utils/menu-filter/index.js.map +1 -1
- package/dist/views/404/index.esm.js.map +1 -1
- package/dist/views/404/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/dashboard/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/dashboard/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/actionCreator/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/reducer/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/reducer/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/state/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/state/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/page-view/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/page-view/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/actionCreator/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/reducer/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/reducer/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/state/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/state/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/default-data/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/default-data/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/local-data/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/local-data/index.js.map +1 -1
- package/dist/views/beforeAuth/change-password/change-password/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/change-password/change-password/index.js.map +1 -1
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -1
- package/dist/views/beforeAuth/forgot-password/forgot-password/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/forgot-password/forgot-password/index.js.map +1 -1
- package/dist/views/beforeAuth/landing/landing/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/landing/landing/index.js.map +1 -1
- package/dist/views/beforeAuth/reset-password/reset-password/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/reset-password/reset-password/index.js.map +1 -1
- package/dist/views/form-builder/custom-form/index.esm.js.map +1 -1
- package/dist/views/form-builder/custom-form/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/checkbox/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/checkbox/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/column-width/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/field-select/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/field-select/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/section/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/section/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/select/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/select/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/table-form/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/table-form/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/text/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/text/index.js.map +1 -1
- package/dist/views/form-builder/field_properties/index.esm.js.map +1 -1
- package/dist/views/form-builder/field_properties/index.js.map +1 -1
- package/dist/views/form-builder/form-fields/index.esm.js.map +1 -1
- package/dist/views/form-builder/form-fields/index.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
- package/dist/views/form-builder/redux/reducer/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/reducer/index.js.map +1 -1
- package/dist/views/form-builder/redux/state/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/state/index.js.map +1 -1
- package/dist/views/form-builder/utils/common/index.esm.js.map +1 -1
- package/dist/views/form-builder/utils/common/index.js.map +1 -1
- package/dist/views/index.d.ts +8 -8
- package/dist/views/privateRoute/index.esm.js.map +1 -1
- package/dist/views/privateRoute/index.js.map +1 -1
- package/dist/views/template-editor/add-template/add-template/index.esm.js.map +1 -1
- package/dist/views/template-editor/add-template/add-template/index.js.map +1 -1
- package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorCanvas/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorCanvas/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorHeader/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorHeader/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorSection/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorSection/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
- package/dist/views/template-editor/components/SectionFlowEditor/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/SectionFlowEditor/index.js.map +1 -1
- package/dist/views/template-editor/components/SectionFormatPanel/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/SectionFormatPanel/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/AlignmentControl/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/AlignmentControl/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ButtonControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ButtonControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/CodeControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/CodeControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/DividerControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/DividerControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ImageControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ImageControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/SignatureControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/SignatureControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TableControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TableControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TextControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TextControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/border-control/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/border-control/index.js.map +1 -1
- package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.js.map +1 -1
- package/dist/views/template-editor/routes/index.esm.js.map +1 -1
- package/dist/views/template-editor/routes/index.js.map +1 -1
- package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.esm.js.map +1 -1
- package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.js.map +1 -1
- package/dist/views/template-editor/template-modal/template-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/template-modal/template-modal/index.js.map +1 -1
- package/dist/views/template-editor/template-name-modal/template-name-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/template-name-modal/template-name-modal/index.js.map +1 -1
- package/dist/views/template-editor/templates/index.esm.js +1 -1
- package/dist/views/template-editor/templates/index.esm.js.map +1 -1
- package/dist/views/template-editor/templates/index.js +1 -1
- package/dist/views/template-editor/templates/index.js.map +1 -1
- package/dist/views/template-editor/utils/common/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/common/index.js.map +1 -1
- package/dist/views/template-editor/utils/constant/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/constant/index.js.map +1 -1
- package/dist/views/template-editor/utils/default-data/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/default-data/index.js.map +1 -1
- package/dist/views/template-editor/utils/style-extractor/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/style-extractor/index.js.map +1 -1
- package/dist/vite-env.d.ts +23 -23
- package/package.json +299 -299
- package/src/styles/README.md +287 -287
- package/src/styles/all.scss +7 -7
- package/src/styles/animations.scss +5 -5
- package/src/styles/css/reset.css +1 -1
- package/src/styles/index.d.ts +1 -1
- package/src/styles/index.ts +1 -1
- package/src/styles/mixins.scss +5 -5
- package/src/styles/sass/main.scss +11 -11
- package/src/styles/utils.scss +5 -5
- package/src/styles/variables.scss +4 -4
- package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +0 -1
- package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +0 -2
- package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +0 -1
- package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +0 -1
- package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +0 -2
- package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/element-edit-forms/text.tsx"],"sourcesContent":["// React imports\r\nimport { useCallback, useEffect, useState, useMemo, useRef } from \"react\";\r\n\r\n// Material UI imports\r\nimport {\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n IconButton,\r\n MenuItem,\r\n Box,\r\n FormControlLabel,\r\n FormControl,\r\n Slider,\r\n} from \"@mui/material\";\r\nimport { Add, Close } from \"@mui/icons-material\";\r\n\r\n// ERP Common imports\r\nimport Button from \"@/components/button/button\";\r\nimport Modal from \"@/components/modal/modal\";\r\nimport Typography from \"@/components/typography/typography\";\r\nimport TextField from \"@/components/text-field/text-field\";\r\nimport Select from \"@/components/select/select\";\r\nimport Checkbox from \"@/components/checkbox/checkbox\";\r\nimport formatText from \"@/utils/format-text\";\r\n\r\n// Local imports\r\nimport FieldSelect from \"./field-select\";\r\nimport { IElementJson } from \"../custom-form\";\r\nimport { ApiFormFields } from \"../../Redux/state\";\r\nimport \"../custom-form.scss\";\r\n\r\ninterface Option {\r\n label: string;\r\n value: string;\r\n}\r\n\r\ninterface ITextEditFormProps {\r\n handleWidthChange: (value?: number) => void;\r\n handleColumnSelect: (value?: number) => void;\r\n handlePropertyValueUpdate: (\r\n event?: React.ChangeEvent<HTMLInputElement>,\r\n numberValue?: number,\r\n value?: any,\r\n fieldType?: string,\r\n ) => void;\r\n element: IElementJson | null;\r\n fields: ApiFormFields | null;\r\n}\r\n\r\n// Constants moved outside to prevent re-creation\r\nconst COLUMN_PER_ROW_OPTIONS = [1, 2, 3, 4, 5, 6] as const;\r\nconst SELECT_OPTIONS = [\r\n { text: \"12 Hour\", value: \"12hr\" },\r\n { text: \"24 Hour\", value: \"24hr\" },\r\n] as const;\r\nconst CURRENCY_OPTIONS = [\r\n { text: \"INR (India)\", value: \"inr\" },\r\n { text: \"USD (US)\", value: \"usd\" },\r\n] as const;\r\n\r\nconst FIELDS_WITHOUT_PLACEHOLDER = new Set([\r\n \"time\", \"file\", \"geoLocation\", \"image\", \"info\", \"relation\"\r\n]);\r\nconst FIELDS_WITH_MIN_MAX = new Set([\"text\", \"number\"]);\r\n\r\n// Memoized components to prevent unnecessary re-renders\r\nconst MemoizedMenuItem = ({ option, index, prefix }: { option: any; index: number; prefix: string }) => (\r\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\r\n {option.text || option.label}\r\n </MenuItem>\r\n);\r\n\r\nconst MemoizedRelationMenuItem = ({ option, index, prefix }: { option: Option; index: number; prefix: string }) => (\r\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\r\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\r\n {option.label}\r\n </Typography>\r\n </MenuItem>\r\n);\r\n\r\nexport function TextEditForm(props: ITextEditFormProps) {\r\n const { \r\n handlePropertyValueUpdate, \r\n handleColumnSelect, \r\n handleWidthChange, \r\n fields, \r\n element \r\n } = props;\r\n\r\n // State management - optimized to prevent unnecessary re-renders\r\n const [elementJSON, setElementJSON] = useState<IElementJson | null>(element);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [relationFields, setRelationFields] = useState<Option[]>([]);\r\n const [functionValue, setFunctionValue] = useState(\"\");\r\n \r\n // Use refs to track previous values and prevent unnecessary updates\r\n const prevElementRef = useRef<IElementJson | null>(element);\r\n const prevFieldsRef = useRef<ApiFormFields | null>(fields);\r\n\r\n // Memoized relation modules with deep comparison prevention\r\n const relationModulesOptions = useMemo(() => {\r\n if (!fields || fields === prevFieldsRef.current) {\r\n if (prevFieldsRef.current && fields) return prevFieldsRef.current;\r\n }\r\n \r\n prevFieldsRef.current = fields;\r\n \r\n if (!fields) return [];\r\n return Object.keys(fields).map((key) => ({\r\n label: formatText(key),\r\n value: key,\r\n }));\r\n }, [fields]);\r\n\r\n // Optimized relation fields setter with memoization\r\n const setRelationFieldsOptions = useCallback(\r\n (moduleValue?: string) => {\r\n if (!fields || !moduleValue) {\r\n setRelationFields(prev => prev.length > 0 ? [] : prev);\r\n return;\r\n }\r\n\r\n const fieldsArr = fields[moduleValue];\r\n if (fieldsArr?.length) {\r\n const options = fieldsArr.map((field) => ({\r\n label: field.field,\r\n value: field.field,\r\n }));\r\n \r\n // Only update if options actually changed\r\n setRelationFields(prev => {\r\n if (prev.length !== options.length) return options;\r\n const isDifferent = prev.some((item, idx) => \r\n item.value !== options[idx]?.value || item.label !== options[idx]?.label\r\n );\r\n return isDifferent ? options : prev;\r\n });\r\n } else {\r\n setRelationFields(prev => prev.length > 0 ? [] : prev);\r\n }\r\n },\r\n [fields]\r\n );\r\n\r\n // Memoized event handlers to prevent child re-renders\r\n const handleSave = useCallback((value: string) => {\r\n if (!elementJSON) return;\r\n \r\n // Only update if value actually changed\r\n if (elementJSON.default_value !== value) {\r\n const updatedElement = { ...elementJSON, default_value: value };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(null, null, value);\r\n }\r\n \r\n if (value) {\r\n setFunctionValue(\"\");\r\n setOpenModal(false);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleFieldUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!elementJSON) return;\r\n \r\n const fieldType = e.target.value;\r\n if (elementJSON.field_type !== fieldType) {\r\n const updatedElement = { ...elementJSON, field_type: fieldType };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(null, null, null, e.target.value);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleSelectUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!elementJSON) return;\r\n \r\n const option = e.target.value;\r\n if (elementJSON.option !== option) {\r\n const updatedElement = { ...elementJSON, option };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(null, null, option);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleModuleSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const moduleValue = e.target.value;\r\n if (elementJSON?.module !== moduleValue) {\r\n setRelationFieldsOptions(moduleValue);\r\n handlePropertyValueUpdate(e);\r\n }\r\n }, [elementJSON?.module, setRelationFieldsOptions, handlePropertyValueUpdate]);\r\n\r\n const handleWidthSliderChange = useCallback((_: Event, value: number | number[]) => {\r\n if (!elementJSON) return;\r\n \r\n const widthValue = Array.isArray(value) ? value[0] : value;\r\n if (elementJSON.custom_width !== widthValue) {\r\n const updatedElement = { ...elementJSON, custom_width: widthValue };\r\n setElementJSON(updatedElement);\r\n handleWidthChange(widthValue);\r\n }\r\n }, [elementJSON, handleWidthChange]);\r\n\r\n const handleFullWidthChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!elementJSON) return;\r\n \r\n const isFullWidth = e.target.checked;\r\n if (elementJSON.is_fullwidth !== isFullWidth) {\r\n const updatedElement = { ...elementJSON, is_fullwidth: isFullWidth };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(e);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleColumnSelectChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const columnValue = Number(e.target.value);\r\n handleColumnSelect(columnValue);\r\n }, [handleColumnSelect]);\r\n\r\n // Memoized helper functions\r\n const getDefaultValue = useCallback((elementJSON: IElementJson) => {\r\n if ([\"number\", \"currency\", \"geoLocation\"].includes(elementJSON.field_type)) {\r\n return elementJSON.default_value?.toString().replace(/[^0-9]/g, \"\") || \"\";\r\n }\r\n return elementJSON.default_value || \"\";\r\n }, []);\r\n\r\n const getMinMaxLabels = useCallback((fieldType: string) => {\r\n return fieldType === \"text\" \r\n ? { min: \"Min character count (with spaces)\", max: \"Max character count (with spaces)\" }\r\n : { min: \"Min number\", max: \"Max number\" };\r\n }, []);\r\n\r\n // Modal handlers\r\n const handleOpenModal = useCallback(() => setOpenModal(true), []);\r\n const handleCloseModal = useCallback(() => {\r\n setOpenModal(false);\r\n setFunctionValue(\"\");\r\n }, []);\r\n\r\n const handleFunctionValueChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setFunctionValue(e.target.value);\r\n }, []);\r\n\r\n // Optimized effects with proper dependency arrays\r\n useEffect(() => {\r\n // Only update if element actually changed\r\n if (element !== prevElementRef.current) {\r\n setElementJSON(element);\r\n prevElementRef.current = element;\r\n \r\n if (element?.module) {\r\n setRelationFieldsOptions(element.module);\r\n }\r\n }\r\n }, [element, setRelationFieldsOptions]);\r\n\r\n // Memoized render sections to prevent unnecessary re-computation\r\n const currencySelectSection = useMemo(() => {\r\n if (elementJSON?.field_type !== \"currency\") return null;\r\n \r\n return (\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder=\"Select Currency\"\r\n size=\"small\"\r\n onChange={handleSelectUpdate}\r\n defaultValue={elementJSON.option}\r\n label=\"Currency\"\r\n name=\"option\"\r\n variant=\"outlined\"\r\n >\r\n {CURRENCY_OPTIONS.map((option, index) => (\r\n <MemoizedMenuItem \r\n key={`currency-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"currency\" \r\n />\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n );\r\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\r\n\r\n const timeSelectSection = useMemo(() => {\r\n if (elementJSON?.field_type !== \"time\") return null;\r\n \r\n return (\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder=\"Select Time Format\"\r\n size=\"small\"\r\n onChange={handleSelectUpdate}\r\n defaultValue={elementJSON.option}\r\n label=\"Time Format\"\r\n name=\"option\"\r\n variant=\"outlined\"\r\n >\r\n {SELECT_OPTIONS.map((option, index) => (\r\n <MemoizedMenuItem \r\n key={`time-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"time\" \r\n />\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n );\r\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\r\n\r\n const relationSelectSection = useMemo(() => {\r\n if (elementJSON?.field_type !== \"relation\") return null;\r\n \r\n return (\r\n <>\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder={\r\n relationModulesOptions.length\r\n ? \"Select Relation Module\"\r\n : \"No data available\"\r\n }\r\n size=\"small\"\r\n onChange={handleModuleSelect}\r\n value={elementJSON.module || \"\"}\r\n label=\"Relation Module\"\r\n name=\"module\"\r\n >\r\n {relationModulesOptions.length ? (\r\n relationModulesOptions.map((option, index) => (\r\n <MemoizedRelationMenuItem \r\n key={`module-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"module\" \r\n />\r\n ))\r\n ) : (\r\n <MenuItem disabled>\r\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\r\n <em>No data available</em>\r\n </Typography>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder={\r\n !elementJSON.module\r\n ? \"Select Module First\"\r\n : relationFields.length\r\n ? \"Select Relation Field\"\r\n : \"No data available\"\r\n }\r\n size=\"small\"\r\n onChange={handlePropertyValueUpdate}\r\n value={elementJSON.field || \"\"}\r\n label=\"Relation Field\"\r\n disabled={!elementJSON.module}\r\n name=\"field\"\r\n >\r\n {relationFields.length ? (\r\n relationFields.map((option, index) => (\r\n <MemoizedRelationMenuItem \r\n key={`field-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"field\" \r\n />\r\n ))\r\n ) : (\r\n <MenuItem disabled>\r\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\r\n <em>No data available</em>\r\n </Typography>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n </>\r\n );\r\n }, [\r\n elementJSON?.field_type, \r\n elementJSON?.module, \r\n elementJSON?.field,\r\n relationModulesOptions, \r\n relationFields, \r\n handleModuleSelect, \r\n handlePropertyValueUpdate\r\n ]);\r\n\r\n // Early return if no element\r\n if (!elementJSON) {\r\n return null;\r\n }\r\n\r\n const { field_type } = elementJSON;\r\n const minMaxLabels = getMinMaxLabels(field_type);\r\n\r\n return (\r\n <Box className=\"formSection--FieldContainer\">\r\n {/* Field Type Selection */}\r\n <Box>\r\n <FieldSelect\r\n variant=\"outlined\"\r\n onChange={handleFieldUpdate}\r\n defaultValue={field_type}\r\n label=\"Field Type\"\r\n disabled={elementJSON.type === \"system\" || !elementJSON.is_new}\r\n />\r\n </Box>\r\n\r\n {/* Label Field */}\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Label\"\r\n is_required\r\n name=\"label\"\r\n type=\"text\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.label}\r\n />\r\n </Box>\r\n\r\n {/* File/Image Max Size */}\r\n {(field_type === \"file\" || field_type === \"image\") && (\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Max File Size (in MB)\"\r\n name=\"max_size\"\r\n type=\"number\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.max_size}\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Currency Selection - Memoized */}\r\n {currencySelectSection}\r\n\r\n {/* Placeholder and Default Value */}\r\n {!FIELDS_WITHOUT_PLACEHOLDER.has(field_type) && (\r\n <>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Placeholder\"\r\n name=\"placeholder\"\r\n type=\"text\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.placeholder}\r\n />\r\n </Box>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Default Value\"\r\n placeholder=\"Default Value\"\r\n name=\"default_value\"\r\n type={field_type === \"phone\" ? \"tel\" : field_type === \"number\" ? \"number\" : \"text\"}\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={getDefaultValue(elementJSON)}\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Time Format Selection - Memoized */}\r\n {timeSelectSection}\r\n\r\n {/* Relation Module and Field Selection - Memoized */}\r\n {relationSelectSection}\r\n\r\n {/* Min/Max Length for Text and Number Fields */}\r\n {FIELDS_WITH_MIN_MAX.has(field_type) && (\r\n <>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label={minMaxLabels.min}\r\n name=\"min_length\"\r\n type=\"number\"\r\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\r\n defaultValue={elementJSON.min_length || elementJSON.min || 1}\r\n />\r\n </Box>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label={minMaxLabels.max}\r\n name=\"max_length\"\r\n type=\"number\"\r\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\r\n defaultValue={\r\n elementJSON.max_length || \r\n elementJSON.max || \r\n (field_type === 'number' ? 10000 : 255)\r\n }\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Column Per Row Selection */}\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder=\"Select Column Per Row\"\r\n size=\"small\"\r\n onChange={handleColumnSelectChange}\r\n value={elementJSON.columns_per_row || 1}\r\n label=\"Select Column Per Row\"\r\n name=\"columns_per_row\"\r\n variant=\"outlined\"\r\n >\r\n {COLUMN_PER_ROW_OPTIONS.map((option, index) => (\r\n <MenuItem key={`column-${index}`} value={option}>\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n\r\n {/* Width Adjustment Slider */}\r\n <Box>\r\n <Typography sx={{ color: 'black', mb: 1 }}>\r\n Adjust Width:\r\n </Typography>\r\n <Slider\r\n value={elementJSON.custom_width || 12}\r\n name=\"custom_width\"\r\n min={1}\r\n max={12}\r\n step={1}\r\n onChange={handleWidthSliderChange}\r\n aria-labelledby=\"width-slider\"\r\n sx={{ color: \"#4AC08C\" }}\r\n disabled={elementJSON.is_fullwidth}\r\n marks\r\n valueLabelDisplay=\"auto\"\r\n />\r\n </Box>\r\n\r\n {/* Number Field Specific Options */}\r\n {field_type === \"number\" && (\r\n <>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Float Step\"\r\n name=\"float_step\"\r\n type=\"number\"\r\n step=\"0.01\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.float_step}\r\n />\r\n </Box>\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_negative\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_negative || false}\r\n label=\"Allow Negative Numbers\"\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Date Field Specific Options */}\r\n {field_type === \"date\" && (\r\n <>\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_future_dates_allowed\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_future_dates_allowed || false}\r\n label=\"Allow Future Dates\"\r\n />\r\n </Box>\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_past_dates_allowed\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_past_dates_allowed || false}\r\n label=\"Allow Past Dates\"\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Required Field Checkbox */}\r\n {field_type !== \"info\" && (\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_required\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_required || false}\r\n label=\"This field is required\"\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Email Unique Checkbox */}\r\n {field_type === \"email\" && (\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_unique\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_unique || false}\r\n label=\"Is Unique\"\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Text Multiline Checkbox */}\r\n {field_type === \"text\" && (\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_multiline\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_multiline || false}\r\n label=\"Is Multiline\"\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Full Width Checkbox */}\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_fullwidth\"\r\n control={<Checkbox />}\r\n onChange={handleFullWidthChange}\r\n checked={elementJSON.is_fullwidth || false}\r\n label=\"Full Width\"\r\n />\r\n </Box>\r\n\r\n {/* Info Field Function Button */}\r\n {field_type === \"info\" && (\r\n <Box>\r\n <Button\r\n variant=\"outlined\"\r\n startIcon={<Add />}\r\n onClick={handleOpenModal}\r\n className=\"formSection--PreviewButton\"\r\n >\r\n Add Function\r\n </Button>\r\n </Box>\r\n )}\r\n\r\n {/* Function Modal */}\r\n <Modal fullWidth onClose={handleCloseModal} open={openModal}>\r\n <DialogTitle>\r\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\r\n Add Function\r\n </Typography>\r\n <IconButton\r\n edge=\"end\"\r\n onClick={handleCloseModal}\r\n size=\"small\"\r\n >\r\n <Close fontSize=\"inherit\" />\r\n </IconButton>\r\n </DialogTitle>\r\n <DialogContent dividers>\r\n <Typography weight=\"medium\" type=\"s3\" color=\"theme.secondary.700\" sx={{ mb: 2 }}>\r\n Label: <span style={{ color: \"#1F2125\" }}>{elementJSON.label}</span>\r\n </Typography>\r\n <TextField\r\n name=\"default_value\"\r\n fullWidth\r\n placeholder=\"Add a function\"\r\n multiline\r\n minRows={4}\r\n defaultValue={elementJSON.default_value}\r\n onChange={handleFunctionValueChange}\r\n value={functionValue}\r\n />\r\n </DialogContent>\r\n <DialogActions>\r\n <Button\r\n variant=\"outlined\"\r\n onClick={handleCloseModal}\r\n style={{ color: \"black\" }}\r\n >\r\n Cancel\r\n </Button>\r\n <Button onClick={() => handleSave(functionValue)}>\r\n Save\r\n </Button>\r\n </DialogActions>\r\n </Modal>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default TextEditForm;"],"names":["elementJSON"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAM,yBAAyB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,MAAM,iBAAiB;AAAA,EACrB,EAAE,MAAM,WAAW,OAAO,OAAA;AAAA,EAC1B,EAAE,MAAM,WAAW,OAAO,OAAA;AAC5B;AACA,MAAM,mBAAmB;AAAA,EACvB,EAAE,MAAM,eAAe,OAAO,MAAA;AAAA,EAC9B,EAAE,MAAM,YAAY,OAAO,MAAA;AAC7B;AAEA,MAAM,iDAAiC,IAAI;AAAA,EACzC;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAe;AAAA,EAAS;AAAA,EAAQ;AAClD,CAAC;AACD,MAAM,sBAAsB,oBAAI,IAAI,CAAC,QAAQ,QAAQ,CAAC;AAGtD,MAAM,mBAAmB,CAAC,EAAE,QAAQ,OAAO,iCACxC,UAAA,EAAoC,OAAO,OAAO,OAChD,UAAA,OAAO,QAAQ,OAAO,MAAA,GADV,GAAG,MAAM,IAAI,KAAK,EAEjC;AAGF,MAAM,2BAA2B,CAAC,EAAE,QAAQ,OAAO,aACjD,oBAAC,UAAA,EAAoC,OAAO,OAAO,OACjD,8BAAC,YAAA,EAAW,MAAK,MAAK,OAAM,wBACzB,UAAA,OAAO,OACV,EAAA,GAHa,GAAG,MAAM,IAAI,KAAK,EAIjC;AAGK,SAAS,aAAa,OAA2B;AACtD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AAGJ,QAAM,CAAC,aAAa,cAAc,IAAI,SAA8B,OAAO;AAC3E,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAmB,CAAA,CAAE;AACjE,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,EAAE;AAGrD,QAAM,iBAAiB,OAA4B,OAAO;AAC1D,QAAM,gBAAgB,OAA6B,MAAM;AAGzD,QAAM,yBAAyB,QAAQ,MAAM;AAC3C,QAAI,CAAC,UAAU,WAAW,cAAc,SAAS;AAC/C,UAAI,cAAc,WAAW,OAAQ,QAAO,cAAc;AAAA,IAC5D;AAEA,kBAAc,UAAU;AAExB,QAAI,CAAC,OAAQ,QAAO,CAAA;AACpB,WAAO,OAAO,KAAK,MAAM,EAAE,IAAI,CAAC,SAAS;AAAA,MACvC,OAAO,WAAW,GAAG;AAAA,MACrB,OAAO;AAAA,IAAA,EACP;AAAA,EACJ,GAAG,CAAC,MAAM,CAAC;AAGX,QAAM,2BAA2B;AAAA,IAC/B,CAAC,gBAAyB;AACxB,UAAI,CAAC,UAAU,CAAC,aAAa;AAC3B,0BAAkB,UAAQ,KAAK,SAAS,IAAI,CAAA,IAAK,IAAI;AACrD;AAAA,MACF;AAEA,YAAM,YAAY,OAAO,WAAW;AACpC,UAAI,uCAAW,QAAQ;AACrB,cAAM,UAAU,UAAU,IAAI,CAAC,WAAW;AAAA,UACxC,OAAO,MAAM;AAAA,UACb,OAAO,MAAM;AAAA,QAAA,EACb;AAGF,0BAAkB,CAAA,SAAQ;AACxB,cAAI,KAAK,WAAW,QAAQ,OAAQ,QAAO;AAC3C,gBAAM,cAAc,KAAK;AAAA,YAAK,CAAC,MAAM,QAAA;;AACnC,0BAAK,YAAU,aAAQ,GAAG,MAAX,mBAAc,UAAS,KAAK,YAAU,aAAQ,GAAG,MAAX,mBAAc;AAAA;AAAA,UAAA;AAErE,iBAAO,cAAc,UAAU;AAAA,QACjC,CAAC;AAAA,MACH,OAAO;AACL,0BAAkB,UAAQ,KAAK,SAAS,IAAI,CAAA,IAAK,IAAI;AAAA,MACvD;AAAA,IACF;AAAA,IACA,CAAC,MAAM;AAAA,EAAA;AAIT,QAAM,aAAa,YAAY,CAAC,UAAkB;AAChD,QAAI,CAAC,YAAa;AAGlB,QAAI,YAAY,kBAAkB,OAAO;AACvC,YAAM,iBAAiB,EAAE,GAAG,aAAa,eAAe,MAAA;AACxD,qBAAe,cAAc;AAC7B,gCAA0B,MAAM,MAAM,KAAK;AAAA,IAC7C;AAEA,QAAI,OAAO;AACT,uBAAiB,EAAE;AACnB,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,aAAa,yBAAyB,CAAC;AAE3C,QAAM,oBAAoB,YAAY,CAAC,MAA2C;AAChF,QAAI,CAAC,YAAa;AAElB,UAAM,YAAY,EAAE,OAAO;AAC3B,QAAI,YAAY,eAAe,WAAW;AACxC,YAAM,iBAAiB,EAAE,GAAG,aAAa,YAAY,UAAA;AACrD,qBAAe,cAAc;AAC7B,gCAA0B,MAAM,MAAM,MAAM,EAAE,OAAO,KAAK;AAAA,IAC5D;AAAA,EACF,GAAG,CAAC,aAAa,yBAAyB,CAAC;AAE3C,QAAM,qBAAqB,YAAY,CAAC,MAA2C;AACjF,QAAI,CAAC,YAAa;AAElB,UAAM,SAAS,EAAE,OAAO;AACxB,QAAI,YAAY,WAAW,QAAQ;AACjC,YAAM,iBAAiB,EAAE,GAAG,aAAa,OAAA;AACzC,qBAAe,cAAc;AAC7B,gCAA0B,MAAM,MAAM,MAAM;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,aAAa,yBAAyB,CAAC;AAE3C,QAAM,qBAAqB,YAAY,CAAC,MAA2C;AACjF,UAAM,cAAc,EAAE,OAAO;AAC7B,SAAI,2CAAa,YAAW,aAAa;AACvC,+BAAyB,WAAW;AACpC,gCAA0B,CAAC;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,2CAAa,QAAQ,0BAA0B,yBAAyB,CAAC;AAE7E,QAAM,0BAA0B,YAAY,CAAC,GAAU,UAA6B;AAClF,QAAI,CAAC,YAAa;AAElB,UAAM,aAAa,MAAM,QAAQ,KAAK,IAAI,MAAM,CAAC,IAAI;AACrD,QAAI,YAAY,iBAAiB,YAAY;AAC3C,YAAM,iBAAiB,EAAE,GAAG,aAAa,cAAc,WAAA;AACvD,qBAAe,cAAc;AAC7B,wBAAkB,UAAU;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,aAAa,iBAAiB,CAAC;AAEnC,QAAM,wBAAwB,YAAY,CAAC,MAA2C;AACpF,QAAI,CAAC,YAAa;AAElB,UAAM,cAAc,EAAE,OAAO;AAC7B,QAAI,YAAY,iBAAiB,aAAa;AAC5C,YAAM,iBAAiB,EAAE,GAAG,aAAa,cAAc,YAAA;AACvD,qBAAe,cAAc;AAC7B,gCAA0B,CAAC;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,aAAa,yBAAyB,CAAC;AAE3C,QAAM,2BAA2B,YAAY,CAAC,MAA2C;AACvF,UAAM,cAAc,OAAO,EAAE,OAAO,KAAK;AACzC,uBAAmB,WAAW;AAAA,EAChC,GAAG,CAAC,kBAAkB,CAAC;AAGvB,QAAM,kBAAkB,YAAY,CAACA,iBAA8B;;AACjE,QAAI,CAAC,UAAU,YAAY,aAAa,EAAE,SAASA,aAAY,UAAU,GAAG;AAC1E,eAAOA,kBAAY,kBAAZA,mBAA2B,WAAW,QAAQ,WAAW,QAAO;AAAA,IACzE;AACA,WAAOA,aAAY,iBAAiB;AAAA,EACtC,GAAG,CAAA,CAAE;AAEL,QAAM,kBAAkB,YAAY,CAAC,cAAsB;AACzD,WAAO,cAAc,SACjB,EAAE,KAAK,qCAAqC,KAAK,oCAAA,IACjD,EAAE,KAAK,cAAc,KAAK,aAAA;AAAA,EAChC,GAAG,CAAA,CAAE;AAGL,QAAM,kBAAkB,YAAY,MAAM,aAAa,IAAI,GAAG,CAAA,CAAE;AAChE,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,KAAK;AAClB,qBAAiB,EAAE;AAAA,EACrB,GAAG,CAAA,CAAE;AAEL,QAAM,4BAA4B,YAAY,CAAC,MAA2C;AACxF,qBAAiB,EAAE,OAAO,KAAK;AAAA,EACjC,GAAG,CAAA,CAAE;AAGL,YAAU,MAAM;AAEd,QAAI,YAAY,eAAe,SAAS;AACtC,qBAAe,OAAO;AACtB,qBAAe,UAAU;AAEzB,UAAI,mCAAS,QAAQ;AACnB,iCAAyB,QAAQ,MAAM;AAAA,MACzC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,wBAAwB,CAAC;AAGtC,QAAM,wBAAwB,QAAQ,MAAM;AAC1C,SAAI,2CAAa,gBAAe,WAAY,QAAO;AAEnD,WACE,oBAAC,KAAA,EACC,UAAA,oBAAC,aAAA,EAAY,WAAS,MACpB,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc,YAAY;AAAA,QAC1B,OAAM;AAAA,QACN,MAAK;AAAA,QACL,SAAQ;AAAA,QAEP,UAAA,iBAAiB,IAAI,CAAC,QAAQ,UAC7B;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC;AAAA,YACA;AAAA,YACA,QAAO;AAAA,UAAA;AAAA,UAHF,YAAY,KAAK;AAAA,QAAA,CAKzB;AAAA,MAAA;AAAA,IAAA,GAEL,EAAA,CACF;AAAA,EAEJ,GAAG,CAAC,2CAAa,YAAY,2CAAa,QAAQ,kBAAkB,CAAC;AAErE,QAAM,oBAAoB,QAAQ,MAAM;AACtC,SAAI,2CAAa,gBAAe,OAAQ,QAAO;AAE/C,WACE,oBAAC,KAAA,EACC,UAAA,oBAAC,aAAA,EAAY,WAAS,MACpB,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc,YAAY;AAAA,QAC1B,OAAM;AAAA,QACN,MAAK;AAAA,QACL,SAAQ;AAAA,QAEP,UAAA,eAAe,IAAI,CAAC,QAAQ,UAC3B;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC;AAAA,YACA;AAAA,YACA,QAAO;AAAA,UAAA;AAAA,UAHF,QAAQ,KAAK;AAAA,QAAA,CAKrB;AAAA,MAAA;AAAA,IAAA,GAEL,EAAA,CACF;AAAA,EAEJ,GAAG,CAAC,2CAAa,YAAY,2CAAa,QAAQ,kBAAkB,CAAC;AAErE,QAAM,wBAAwB,QAAQ,MAAM;AAC1C,SAAI,2CAAa,gBAAe,WAAY,QAAO;AAEnD,WACE,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,KAAA,EACC,UAAA,oBAAC,aAAA,EAAY,WAAS,MACpB,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,aACE,uBAAuB,SACnB,2BACA;AAAA,UAEN,MAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO,YAAY,UAAU;AAAA,UAC7B,OAAM;AAAA,UACN,MAAK;AAAA,UAEJ,iCAAuB,SACtB,uBAAuB,IAAI,CAAC,QAAQ,UAClC;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA,QAAO;AAAA,YAAA;AAAA,YAHF,UAAU,KAAK;AAAA,UAAA,CAKvB,IAED,oBAAC,UAAA,EAAS,UAAQ,MAChB,UAAA,oBAAC,YAAA,EAAW,MAAK,MAAK,OAAM,wBAC1B,UAAA,oBAAC,MAAA,EAAG,UAAA,qBAAiB,GACvB,EAAA,CACF;AAAA,QAAA;AAAA,MAAA,GAGN,EAAA,CACF;AAAA,MAEA,oBAAC,KAAA,EACC,UAAA,oBAAC,aAAA,EAAY,WAAS,MACpB,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,aACE,CAAC,YAAY,SACT,wBACA,eAAe,SACf,0BACA;AAAA,UAEN,MAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO,YAAY,SAAS;AAAA,UAC5B,OAAM;AAAA,UACN,UAAU,CAAC,YAAY;AAAA,UACvB,MAAK;AAAA,UAEJ,yBAAe,SACd,eAAe,IAAI,CAAC,QAAQ,UAC1B;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA,QAAO;AAAA,YAAA;AAAA,YAHF,SAAS,KAAK;AAAA,UAAA,CAKtB,IAED,oBAAC,UAAA,EAAS,UAAQ,MAChB,UAAA,oBAAC,YAAA,EAAW,MAAK,MAAK,OAAM,wBAC1B,UAAA,oBAAC,MAAA,EAAG,UAAA,qBAAiB,GACvB,EAAA,CACF;AAAA,QAAA;AAAA,MAAA,GAGN,EAAA,CACF;AAAA,IAAA,GACF;AAAA,EAEJ,GAAG;AAAA,IACD,2CAAa;AAAA,IACb,2CAAa;AAAA,IACb,2CAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAGD,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,eAAe;AACvB,QAAM,eAAe,gBAAgB,UAAU;AAE/C,SACE,qBAAC,KAAA,EAAI,WAAU,+BAEb,UAAA;AAAA,IAAA,oBAAC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,UAAU;AAAA,QACV,cAAc;AAAA,QACd,OAAM;AAAA,QACN,UAAU,YAAY,SAAS,YAAY,CAAC,YAAY;AAAA,MAAA;AAAA,IAAA,GAE5D;AAAA,wBAGC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,OAAM;AAAA,QACN,aAAW;AAAA,QACX,MAAK;AAAA,QACL,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc,YAAY;AAAA,MAAA;AAAA,IAAA,GAE9B;AAAA,KAGE,eAAe,UAAU,eAAe,gCACvC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,OAAM;AAAA,QACN,MAAK;AAAA,QACL,MAAK;AAAA,QACL,UAAU;AAAA,QACV,cAAc,YAAY;AAAA,MAAA;AAAA,IAAA,GAE9B;AAAA,IAID;AAAA,IAGA,CAAC,2BAA2B,IAAI,UAAU,KACzC,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,OAAM;AAAA,UACN,MAAK;AAAA,UACL,MAAK;AAAA,UACL,UAAU;AAAA,UACV,cAAc,YAAY;AAAA,QAAA;AAAA,MAAA,GAE9B;AAAA,0BACC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,OAAM;AAAA,UACN,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,MAAM,eAAe,UAAU,QAAQ,eAAe,WAAW,WAAW;AAAA,UAC5E,UAAU;AAAA,UACV,cAAc,gBAAgB,WAAW;AAAA,QAAA;AAAA,MAAA,EAC3C,CACF;AAAA,IAAA,GACF;AAAA,IAID;AAAA,IAGA;AAAA,IAGA,oBAAoB,IAAI,UAAU,KACjC,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,OAAO,aAAa;AAAA,UACpB,MAAK;AAAA,UACL,MAAK;AAAA,UACL,UAAU,CAAC,MAAM,0BAA0B,GAAG,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,UACpE,cAAc,YAAY,cAAc,YAAY,OAAO;AAAA,QAAA;AAAA,MAAA,GAE/D;AAAA,0BACC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,OAAO,aAAa;AAAA,UACpB,MAAK;AAAA,UACL,MAAK;AAAA,UACL,UAAU,CAAC,MAAM,0BAA0B,GAAG,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,UACpE,cACE,YAAY,cACZ,YAAY,QACX,eAAe,WAAW,MAAQ;AAAA,QAAA;AAAA,MAAA,EAEvC,CACF;AAAA,IAAA,GACF;AAAA,IAIF,oBAAC,KAAA,EACC,UAAA,oBAAC,aAAA,EAAY,WAAS,MACpB,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAS;AAAA,QACT,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,UAAU;AAAA,QACV,OAAO,YAAY,mBAAmB;AAAA,QACtC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,SAAQ;AAAA,QAEP,UAAA,uBAAuB,IAAI,CAAC,QAAQ,UACnC,oBAAC,UAAA,EAAiC,OAAO,QACtC,UAAA,OAAA,GADY,UAAU,KAAK,EAE9B,CACD;AAAA,MAAA;AAAA,IAAA,GAEL,EAAA,CACF;AAAA,yBAGC,KAAA,EACC,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,IAAI,EAAE,OAAO,SAAS,IAAI,EAAA,GAAK,UAAA,gBAAA,CAE3C;AAAA,MACA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO,YAAY,gBAAgB;AAAA,UACnC,MAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,MAAM;AAAA,UACN,UAAU;AAAA,UACV,mBAAgB;AAAA,UAChB,IAAI,EAAE,OAAO,UAAA;AAAA,UACb,UAAU,YAAY;AAAA,UACtB,OAAK;AAAA,UACL,mBAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IACpB,GACF;AAAA,IAGC,eAAe,YACd,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,OAAM;AAAA,UACN,MAAK;AAAA,UACL,MAAK;AAAA,UACL,MAAK;AAAA,UACL,UAAU;AAAA,UACV,cAAc,YAAY;AAAA,QAAA;AAAA,MAAA,GAE9B;AAAA,0BACC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,6BAAU,UAAA,EAAS;AAAA,UACnB,UAAU;AAAA,UACV,SAAS,YAAY,eAAe;AAAA,UACpC,OAAM;AAAA,QAAA;AAAA,MAAA,EACR,CACF;AAAA,IAAA,GACF;AAAA,IAID,eAAe,UACd,qBAAA,UAAA,EACE,UAAA;AAAA,MAAA,oBAAC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,6BAAU,UAAA,EAAS;AAAA,UACnB,UAAU;AAAA,UACV,SAAS,YAAY,2BAA2B;AAAA,UAChD,OAAM;AAAA,QAAA;AAAA,MAAA,GAEV;AAAA,0BACC,KAAA,EACC,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,6BAAU,UAAA,EAAS;AAAA,UACnB,UAAU;AAAA,UACV,SAAS,YAAY,yBAAyB;AAAA,UAC9C,OAAM;AAAA,QAAA;AAAA,MAAA,EACR,CACF;AAAA,IAAA,GACF;AAAA,IAID,eAAe,UACd,oBAAC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,6BAAU,UAAA,EAAS;AAAA,QACnB,UAAU;AAAA,QACV,SAAS,YAAY,eAAe;AAAA,QACpC,OAAM;AAAA,MAAA;AAAA,IAAA,GAEV;AAAA,IAID,eAAe,WACd,oBAAC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,6BAAU,UAAA,EAAS;AAAA,QACnB,UAAU;AAAA,QACV,SAAS,YAAY,aAAa;AAAA,QAClC,OAAM;AAAA,MAAA;AAAA,IAAA,GAEV;AAAA,IAID,eAAe,UACd,oBAAC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,6BAAU,UAAA,EAAS;AAAA,QACnB,UAAU;AAAA,QACV,SAAS,YAAY,gBAAgB;AAAA,QACrC,OAAM;AAAA,MAAA;AAAA,IAAA,GAEV;AAAA,wBAID,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,6BAAU,UAAA,EAAS;AAAA,QACnB,UAAU;AAAA,QACV,SAAS,YAAY,gBAAgB;AAAA,QACrC,OAAM;AAAA,MAAA;AAAA,IAAA,GAEV;AAAA,IAGC,eAAe,UACd,oBAAC,KAAA,EACC,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,+BAAY,KAAA,EAAI;AAAA,QAChB,SAAS;AAAA,QACT,WAAU;AAAA,QACX,UAAA;AAAA,MAAA;AAAA,IAAA,GAGH;AAAA,yBAID,OAAA,EAAM,WAAS,MAAC,SAAS,kBAAkB,MAAM,WAChD,UAAA;AAAA,MAAA,qBAAC,aAAA,EACC,UAAA;AAAA,QAAA,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,UAAA,eAAA,CAEnE;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS;AAAA,YACT,MAAK;AAAA,YAEL,UAAA,oBAAC,OAAA,EAAM,UAAS,UAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAC5B,GACF;AAAA,MACA,qBAAC,eAAA,EAAc,UAAQ,MACrB,UAAA;AAAA,QAAA,qBAAC,YAAA,EAAW,QAAO,UAAS,MAAK,MAAK,OAAM,uBAAsB,IAAI,EAAE,IAAI,EAAA,GAAK,UAAA;AAAA,UAAA;AAAA,UACxE,oBAAC,UAAK,OAAO,EAAE,OAAO,aAAc,sBAAY,MAAA,CAAM;AAAA,QAAA,GAC/D;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAS;AAAA,YACT,aAAY;AAAA,YACZ,WAAS;AAAA,YACT,SAAS;AAAA,YACT,cAAc,YAAY;AAAA,YAC1B,UAAU;AAAA,YACV,OAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,GACF;AAAA,2BACC,eAAA,EACC,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS;AAAA,YACT,OAAO,EAAE,OAAO,QAAA;AAAA,YACjB,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,4BAGA,QAAA,EAAO,SAAS,MAAM,WAAW,aAAa,GAAG,UAAA,OAAA,CAElD;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/form-builder/element-edit-forms/text.tsx"],"sourcesContent":["// React imports\nimport { useCallback, useEffect, useState, useMemo, useRef } from \"react\";\n\n// Material UI imports\nimport {\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n MenuItem,\n Box,\n FormControlLabel,\n FormControl,\n Slider,\n} from \"@mui/material\";\nimport { Add, Close } from \"@mui/icons-material\";\n\n// ERP Common imports\nimport Button from \"@/components/button/button\";\nimport Modal from \"@/components/modal/modal\";\nimport Typography from \"@/components/typography/typography\";\nimport TextField from \"@/components/text-field/text-field\";\nimport Select from \"@/components/select/select\";\nimport Checkbox from \"@/components/checkbox/checkbox\";\nimport formatText from \"@/utils/format-text\";\n\n// Local imports\nimport FieldSelect from \"./field-select\";\nimport { IElementJson } from \"../custom-form\";\nimport { ApiFormFields } from \"../../Redux/state\";\nimport \"../custom-form.scss\";\n\ninterface Option {\n label: string;\n value: string;\n}\n\ninterface ITextEditFormProps {\n handleWidthChange: (value?: number) => void;\n handleColumnSelect: (value?: number) => void;\n handlePropertyValueUpdate: (\n event?: React.ChangeEvent<HTMLInputElement>,\n numberValue?: number,\n value?: any,\n fieldType?: string,\n ) => void;\n element: IElementJson | null;\n fields: ApiFormFields | null;\n}\n\n// Constants moved outside to prevent re-creation\nconst COLUMN_PER_ROW_OPTIONS = [1, 2, 3, 4, 5, 6] as const;\nconst SELECT_OPTIONS = [\n { text: \"12 Hour\", value: \"12hr\" },\n { text: \"24 Hour\", value: \"24hr\" },\n] as const;\nconst CURRENCY_OPTIONS = [\n { text: \"INR (India)\", value: \"inr\" },\n { text: \"USD (US)\", value: \"usd\" },\n] as const;\n\nconst FIELDS_WITHOUT_PLACEHOLDER = new Set([\n \"time\", \"file\", \"geoLocation\", \"image\", \"info\", \"relation\"\n]);\nconst FIELDS_WITH_MIN_MAX = new Set([\"text\", \"number\"]);\n\n// Memoized components to prevent unnecessary re-renders\nconst MemoizedMenuItem = ({ option, index, prefix }: { option: any; index: number; prefix: string }) => (\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\n {option.text || option.label}\n </MenuItem>\n);\n\nconst MemoizedRelationMenuItem = ({ option, index, prefix }: { option: Option; index: number; prefix: string }) => (\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\n {option.label}\n </Typography>\n </MenuItem>\n);\n\nexport function TextEditForm(props: ITextEditFormProps) {\n const { \n handlePropertyValueUpdate, \n handleColumnSelect, \n handleWidthChange, \n fields, \n element \n } = props;\n\n // State management - optimized to prevent unnecessary re-renders\n const [elementJSON, setElementJSON] = useState<IElementJson | null>(element);\n const [openModal, setOpenModal] = useState(false);\n const [relationFields, setRelationFields] = useState<Option[]>([]);\n const [functionValue, setFunctionValue] = useState(\"\");\n \n // Use refs to track previous values and prevent unnecessary updates\n const prevElementRef = useRef<IElementJson | null>(element);\n const prevFieldsRef = useRef<ApiFormFields | null>(fields);\n\n // Memoized relation modules with deep comparison prevention\n const relationModulesOptions = useMemo(() => {\n if (!fields || fields === prevFieldsRef.current) {\n if (prevFieldsRef.current && fields) return prevFieldsRef.current;\n }\n \n prevFieldsRef.current = fields;\n \n if (!fields) return [];\n return Object.keys(fields).map((key) => ({\n label: formatText(key),\n value: key,\n }));\n }, [fields]);\n\n // Optimized relation fields setter with memoization\n const setRelationFieldsOptions = useCallback(\n (moduleValue?: string) => {\n if (!fields || !moduleValue) {\n setRelationFields(prev => prev.length > 0 ? [] : prev);\n return;\n }\n\n const fieldsArr = fields[moduleValue];\n if (fieldsArr?.length) {\n const options = fieldsArr.map((field) => ({\n label: field.field,\n value: field.field,\n }));\n \n // Only update if options actually changed\n setRelationFields(prev => {\n if (prev.length !== options.length) return options;\n const isDifferent = prev.some((item, idx) => \n item.value !== options[idx]?.value || item.label !== options[idx]?.label\n );\n return isDifferent ? options : prev;\n });\n } else {\n setRelationFields(prev => prev.length > 0 ? [] : prev);\n }\n },\n [fields]\n );\n\n // Memoized event handlers to prevent child re-renders\n const handleSave = useCallback((value: string) => {\n if (!elementJSON) return;\n \n // Only update if value actually changed\n if (elementJSON.default_value !== value) {\n const updatedElement = { ...elementJSON, default_value: value };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(null, null, value);\n }\n \n if (value) {\n setFunctionValue(\"\");\n setOpenModal(false);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleFieldUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n if (!elementJSON) return;\n \n const fieldType = e.target.value;\n if (elementJSON.field_type !== fieldType) {\n const updatedElement = { ...elementJSON, field_type: fieldType };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(null, null, null, e.target.value);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleSelectUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n if (!elementJSON) return;\n \n const option = e.target.value;\n if (elementJSON.option !== option) {\n const updatedElement = { ...elementJSON, option };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(null, null, option);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleModuleSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const moduleValue = e.target.value;\n if (elementJSON?.module !== moduleValue) {\n setRelationFieldsOptions(moduleValue);\n handlePropertyValueUpdate(e);\n }\n }, [elementJSON?.module, setRelationFieldsOptions, handlePropertyValueUpdate]);\n\n const handleWidthSliderChange = useCallback((_: Event, value: number | number[]) => {\n if (!elementJSON) return;\n \n const widthValue = Array.isArray(value) ? value[0] : value;\n if (elementJSON.custom_width !== widthValue) {\n const updatedElement = { ...elementJSON, custom_width: widthValue };\n setElementJSON(updatedElement);\n handleWidthChange(widthValue);\n }\n }, [elementJSON, handleWidthChange]);\n\n const handleFullWidthChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n if (!elementJSON) return;\n \n const isFullWidth = e.target.checked;\n if (elementJSON.is_fullwidth !== isFullWidth) {\n const updatedElement = { ...elementJSON, is_fullwidth: isFullWidth };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(e);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleColumnSelectChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const columnValue = Number(e.target.value);\n handleColumnSelect(columnValue);\n }, [handleColumnSelect]);\n\n // Memoized helper functions\n const getDefaultValue = useCallback((elementJSON: IElementJson) => {\n if ([\"number\", \"currency\", \"geoLocation\"].includes(elementJSON.field_type)) {\n return elementJSON.default_value?.toString().replace(/[^0-9]/g, \"\") || \"\";\n }\n return elementJSON.default_value || \"\";\n }, []);\n\n const getMinMaxLabels = useCallback((fieldType: string) => {\n return fieldType === \"text\" \n ? { min: \"Min character count (with spaces)\", max: \"Max character count (with spaces)\" }\n : { min: \"Min number\", max: \"Max number\" };\n }, []);\n\n // Modal handlers\n const handleOpenModal = useCallback(() => setOpenModal(true), []);\n const handleCloseModal = useCallback(() => {\n setOpenModal(false);\n setFunctionValue(\"\");\n }, []);\n\n const handleFunctionValueChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setFunctionValue(e.target.value);\n }, []);\n\n // Optimized effects with proper dependency arrays\n useEffect(() => {\n // Only update if element actually changed\n if (element !== prevElementRef.current) {\n setElementJSON(element);\n prevElementRef.current = element;\n \n if (element?.module) {\n setRelationFieldsOptions(element.module);\n }\n }\n }, [element, setRelationFieldsOptions]);\n\n // Memoized render sections to prevent unnecessary re-computation\n const currencySelectSection = useMemo(() => {\n if (elementJSON?.field_type !== \"currency\") return null;\n \n return (\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder=\"Select Currency\"\n size=\"small\"\n onChange={handleSelectUpdate}\n defaultValue={elementJSON.option}\n label=\"Currency\"\n name=\"option\"\n variant=\"outlined\"\n >\n {CURRENCY_OPTIONS.map((option, index) => (\n <MemoizedMenuItem \n key={`currency-${index}`}\n option={option} \n index={index} \n prefix=\"currency\" \n />\n ))}\n </Select>\n </FormControl>\n </Box>\n );\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\n\n const timeSelectSection = useMemo(() => {\n if (elementJSON?.field_type !== \"time\") return null;\n \n return (\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder=\"Select Time Format\"\n size=\"small\"\n onChange={handleSelectUpdate}\n defaultValue={elementJSON.option}\n label=\"Time Format\"\n name=\"option\"\n variant=\"outlined\"\n >\n {SELECT_OPTIONS.map((option, index) => (\n <MemoizedMenuItem \n key={`time-${index}`}\n option={option} \n index={index} \n prefix=\"time\" \n />\n ))}\n </Select>\n </FormControl>\n </Box>\n );\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\n\n const relationSelectSection = useMemo(() => {\n if (elementJSON?.field_type !== \"relation\") return null;\n \n return (\n <>\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder={\n relationModulesOptions.length\n ? \"Select Relation Module\"\n : \"No data available\"\n }\n size=\"small\"\n onChange={handleModuleSelect}\n value={elementJSON.module || \"\"}\n label=\"Relation Module\"\n name=\"module\"\n >\n {relationModulesOptions.length ? (\n relationModulesOptions.map((option, index) => (\n <MemoizedRelationMenuItem \n key={`module-${index}`}\n option={option} \n index={index} \n prefix=\"module\" \n />\n ))\n ) : (\n <MenuItem disabled>\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\n <em>No data available</em>\n </Typography>\n </MenuItem>\n )}\n </Select>\n </FormControl>\n </Box>\n\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder={\n !elementJSON.module\n ? \"Select Module First\"\n : relationFields.length\n ? \"Select Relation Field\"\n : \"No data available\"\n }\n size=\"small\"\n onChange={handlePropertyValueUpdate}\n value={elementJSON.field || \"\"}\n label=\"Relation Field\"\n disabled={!elementJSON.module}\n name=\"field\"\n >\n {relationFields.length ? (\n relationFields.map((option, index) => (\n <MemoizedRelationMenuItem \n key={`field-${index}`}\n option={option} \n index={index} \n prefix=\"field\" \n />\n ))\n ) : (\n <MenuItem disabled>\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\n <em>No data available</em>\n </Typography>\n </MenuItem>\n )}\n </Select>\n </FormControl>\n </Box>\n </>\n );\n }, [\n elementJSON?.field_type, \n elementJSON?.module, \n elementJSON?.field,\n relationModulesOptions, \n relationFields, \n handleModuleSelect, \n handlePropertyValueUpdate\n ]);\n\n // Early return if no element\n if (!elementJSON) {\n return null;\n }\n\n const { field_type } = elementJSON;\n const minMaxLabels = getMinMaxLabels(field_type);\n\n return (\n <Box className=\"formSection--FieldContainer\">\n {/* Field Type Selection */}\n <Box>\n <FieldSelect\n variant=\"outlined\"\n onChange={handleFieldUpdate}\n defaultValue={field_type}\n label=\"Field Type\"\n disabled={elementJSON.type === \"system\" || !elementJSON.is_new}\n />\n </Box>\n\n {/* Label Field */}\n <Box>\n <TextField\n fullWidth\n label=\"Label\"\n is_required\n name=\"label\"\n type=\"text\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.label}\n />\n </Box>\n\n {/* File/Image Max Size */}\n {(field_type === \"file\" || field_type === \"image\") && (\n <Box>\n <TextField\n fullWidth\n label=\"Max File Size (in MB)\"\n name=\"max_size\"\n type=\"number\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.max_size}\n />\n </Box>\n )}\n\n {/* Currency Selection - Memoized */}\n {currencySelectSection}\n\n {/* Placeholder and Default Value */}\n {!FIELDS_WITHOUT_PLACEHOLDER.has(field_type) && (\n <>\n <Box>\n <TextField\n fullWidth\n label=\"Placeholder\"\n name=\"placeholder\"\n type=\"text\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.placeholder}\n />\n </Box>\n <Box>\n <TextField\n fullWidth\n label=\"Default Value\"\n placeholder=\"Default Value\"\n name=\"default_value\"\n type={field_type === \"phone\" ? \"tel\" : field_type === \"number\" ? \"number\" : \"text\"}\n onChange={handlePropertyValueUpdate}\n defaultValue={getDefaultValue(elementJSON)}\n />\n </Box>\n </>\n )}\n\n {/* Time Format Selection - Memoized */}\n {timeSelectSection}\n\n {/* Relation Module and Field Selection - Memoized */}\n {relationSelectSection}\n\n {/* Min/Max Length for Text and Number Fields */}\n {FIELDS_WITH_MIN_MAX.has(field_type) && (\n <>\n <Box>\n <TextField\n fullWidth\n label={minMaxLabels.min}\n name=\"min_length\"\n type=\"number\"\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\n defaultValue={elementJSON.min_length || elementJSON.min || 1}\n />\n </Box>\n <Box>\n <TextField\n fullWidth\n label={minMaxLabels.max}\n name=\"max_length\"\n type=\"number\"\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\n defaultValue={\n elementJSON.max_length || \n elementJSON.max || \n (field_type === 'number' ? 10000 : 255)\n }\n />\n </Box>\n </>\n )}\n\n {/* Column Per Row Selection */}\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder=\"Select Column Per Row\"\n size=\"small\"\n onChange={handleColumnSelectChange}\n value={elementJSON.columns_per_row || 1}\n label=\"Select Column Per Row\"\n name=\"columns_per_row\"\n variant=\"outlined\"\n >\n {COLUMN_PER_ROW_OPTIONS.map((option, index) => (\n <MenuItem key={`column-${index}`} value={option}>\n {option}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n\n {/* Width Adjustment Slider */}\n <Box>\n <Typography sx={{ color: 'black', mb: 1 }}>\n Adjust Width:\n </Typography>\n <Slider\n value={elementJSON.custom_width || 12}\n name=\"custom_width\"\n min={1}\n max={12}\n step={1}\n onChange={handleWidthSliderChange}\n aria-labelledby=\"width-slider\"\n sx={{ color: \"#4AC08C\" }}\n disabled={elementJSON.is_fullwidth}\n marks\n valueLabelDisplay=\"auto\"\n />\n </Box>\n\n {/* Number Field Specific Options */}\n {field_type === \"number\" && (\n <>\n <Box>\n <TextField\n fullWidth\n label=\"Float Step\"\n name=\"float_step\"\n type=\"number\"\n step=\"0.01\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.float_step}\n />\n </Box>\n <Box>\n <FormControlLabel\n name=\"is_negative\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_negative || false}\n label=\"Allow Negative Numbers\"\n />\n </Box>\n </>\n )}\n\n {/* Date Field Specific Options */}\n {field_type === \"date\" && (\n <>\n <Box>\n <FormControlLabel\n name=\"is_future_dates_allowed\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_future_dates_allowed || false}\n label=\"Allow Future Dates\"\n />\n </Box>\n <Box>\n <FormControlLabel\n name=\"is_past_dates_allowed\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_past_dates_allowed || false}\n label=\"Allow Past Dates\"\n />\n </Box>\n </>\n )}\n\n {/* Required Field Checkbox */}\n {field_type !== \"info\" && (\n <Box>\n <FormControlLabel\n name=\"is_required\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_required || false}\n label=\"This field is required\"\n />\n </Box>\n )}\n\n {/* Email Unique Checkbox */}\n {field_type === \"email\" && (\n <Box>\n <FormControlLabel\n name=\"is_unique\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_unique || false}\n label=\"Is Unique\"\n />\n </Box>\n )}\n\n {/* Text Multiline Checkbox */}\n {field_type === \"text\" && (\n <Box>\n <FormControlLabel\n name=\"is_multiline\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_multiline || false}\n label=\"Is Multiline\"\n />\n </Box>\n )}\n\n {/* Full Width Checkbox */}\n <Box>\n <FormControlLabel\n name=\"is_fullwidth\"\n control={<Checkbox />}\n onChange={handleFullWidthChange}\n checked={elementJSON.is_fullwidth || false}\n label=\"Full Width\"\n />\n </Box>\n\n {/* Info Field Function Button */}\n {field_type === \"info\" && (\n <Box>\n <Button\n variant=\"outlined\"\n startIcon={<Add />}\n onClick={handleOpenModal}\n className=\"formSection--PreviewButton\"\n >\n Add Function\n </Button>\n </Box>\n )}\n\n {/* Function Modal */}\n <Modal fullWidth onClose={handleCloseModal} open={openModal}>\n <DialogTitle>\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Add Function\n </Typography>\n <IconButton\n edge=\"end\"\n onClick={handleCloseModal}\n size=\"small\"\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n </DialogTitle>\n <DialogContent dividers>\n <Typography weight=\"medium\" type=\"s3\" color=\"theme.secondary.700\" sx={{ mb: 2 }}>\n Label: <span style={{ color: \"#1F2125\" }}>{elementJSON.label}</span>\n </Typography>\n <TextField\n name=\"default_value\"\n fullWidth\n placeholder=\"Add a function\"\n multiline\n minRows={4}\n defaultValue={elementJSON.default_value}\n onChange={handleFunctionValueChange}\n value={functionValue}\n />\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"outlined\"\n onClick={handleCloseModal}\n style={{ color: \"black\" }}\n >\n Cancel\n </Button>\n <Button onClick={() => handleSave(functionValue)}>\n Save\n </Button>\n </DialogActions>\n </Modal>\n </Box>\n );\n}\n\nexport default TextEditForm;"],"names":["elementJSON"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/element-edit-forms/text.tsx"],"sourcesContent":["// React imports\r\nimport { useCallback, useEffect, useState, useMemo, useRef } from \"react\";\r\n\r\n// Material UI imports\r\nimport {\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n IconButton,\r\n MenuItem,\r\n Box,\r\n FormControlLabel,\r\n FormControl,\r\n Slider,\r\n} from \"@mui/material\";\r\nimport { Add, Close } from \"@mui/icons-material\";\r\n\r\n// ERP Common imports\r\nimport Button from \"@/components/button/button\";\r\nimport Modal from \"@/components/modal/modal\";\r\nimport Typography from \"@/components/typography/typography\";\r\nimport TextField from \"@/components/text-field/text-field\";\r\nimport Select from \"@/components/select/select\";\r\nimport Checkbox from \"@/components/checkbox/checkbox\";\r\nimport formatText from \"@/utils/format-text\";\r\n\r\n// Local imports\r\nimport FieldSelect from \"./field-select\";\r\nimport { IElementJson } from \"../custom-form\";\r\nimport { ApiFormFields } from \"../../Redux/state\";\r\nimport \"../custom-form.scss\";\r\n\r\ninterface Option {\r\n label: string;\r\n value: string;\r\n}\r\n\r\ninterface ITextEditFormProps {\r\n handleWidthChange: (value?: number) => void;\r\n handleColumnSelect: (value?: number) => void;\r\n handlePropertyValueUpdate: (\r\n event?: React.ChangeEvent<HTMLInputElement>,\r\n numberValue?: number,\r\n value?: any,\r\n fieldType?: string,\r\n ) => void;\r\n element: IElementJson | null;\r\n fields: ApiFormFields | null;\r\n}\r\n\r\n// Constants moved outside to prevent re-creation\r\nconst COLUMN_PER_ROW_OPTIONS = [1, 2, 3, 4, 5, 6] as const;\r\nconst SELECT_OPTIONS = [\r\n { text: \"12 Hour\", value: \"12hr\" },\r\n { text: \"24 Hour\", value: \"24hr\" },\r\n] as const;\r\nconst CURRENCY_OPTIONS = [\r\n { text: \"INR (India)\", value: \"inr\" },\r\n { text: \"USD (US)\", value: \"usd\" },\r\n] as const;\r\n\r\nconst FIELDS_WITHOUT_PLACEHOLDER = new Set([\r\n \"time\", \"file\", \"geoLocation\", \"image\", \"info\", \"relation\"\r\n]);\r\nconst FIELDS_WITH_MIN_MAX = new Set([\"text\", \"number\"]);\r\n\r\n// Memoized components to prevent unnecessary re-renders\r\nconst MemoizedMenuItem = ({ option, index, prefix }: { option: any; index: number; prefix: string }) => (\r\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\r\n {option.text || option.label}\r\n </MenuItem>\r\n);\r\n\r\nconst MemoizedRelationMenuItem = ({ option, index, prefix }: { option: Option; index: number; prefix: string }) => (\r\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\r\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\r\n {option.label}\r\n </Typography>\r\n </MenuItem>\r\n);\r\n\r\nexport function TextEditForm(props: ITextEditFormProps) {\r\n const { \r\n handlePropertyValueUpdate, \r\n handleColumnSelect, \r\n handleWidthChange, \r\n fields, \r\n element \r\n } = props;\r\n\r\n // State management - optimized to prevent unnecessary re-renders\r\n const [elementJSON, setElementJSON] = useState<IElementJson | null>(element);\r\n const [openModal, setOpenModal] = useState(false);\r\n const [relationFields, setRelationFields] = useState<Option[]>([]);\r\n const [functionValue, setFunctionValue] = useState(\"\");\r\n \r\n // Use refs to track previous values and prevent unnecessary updates\r\n const prevElementRef = useRef<IElementJson | null>(element);\r\n const prevFieldsRef = useRef<ApiFormFields | null>(fields);\r\n\r\n // Memoized relation modules with deep comparison prevention\r\n const relationModulesOptions = useMemo(() => {\r\n if (!fields || fields === prevFieldsRef.current) {\r\n if (prevFieldsRef.current && fields) return prevFieldsRef.current;\r\n }\r\n \r\n prevFieldsRef.current = fields;\r\n \r\n if (!fields) return [];\r\n return Object.keys(fields).map((key) => ({\r\n label: formatText(key),\r\n value: key,\r\n }));\r\n }, [fields]);\r\n\r\n // Optimized relation fields setter with memoization\r\n const setRelationFieldsOptions = useCallback(\r\n (moduleValue?: string) => {\r\n if (!fields || !moduleValue) {\r\n setRelationFields(prev => prev.length > 0 ? [] : prev);\r\n return;\r\n }\r\n\r\n const fieldsArr = fields[moduleValue];\r\n if (fieldsArr?.length) {\r\n const options = fieldsArr.map((field) => ({\r\n label: field.field,\r\n value: field.field,\r\n }));\r\n \r\n // Only update if options actually changed\r\n setRelationFields(prev => {\r\n if (prev.length !== options.length) return options;\r\n const isDifferent = prev.some((item, idx) => \r\n item.value !== options[idx]?.value || item.label !== options[idx]?.label\r\n );\r\n return isDifferent ? options : prev;\r\n });\r\n } else {\r\n setRelationFields(prev => prev.length > 0 ? [] : prev);\r\n }\r\n },\r\n [fields]\r\n );\r\n\r\n // Memoized event handlers to prevent child re-renders\r\n const handleSave = useCallback((value: string) => {\r\n if (!elementJSON) return;\r\n \r\n // Only update if value actually changed\r\n if (elementJSON.default_value !== value) {\r\n const updatedElement = { ...elementJSON, default_value: value };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(null, null, value);\r\n }\r\n \r\n if (value) {\r\n setFunctionValue(\"\");\r\n setOpenModal(false);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleFieldUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!elementJSON) return;\r\n \r\n const fieldType = e.target.value;\r\n if (elementJSON.field_type !== fieldType) {\r\n const updatedElement = { ...elementJSON, field_type: fieldType };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(null, null, null, e.target.value);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleSelectUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!elementJSON) return;\r\n \r\n const option = e.target.value;\r\n if (elementJSON.option !== option) {\r\n const updatedElement = { ...elementJSON, option };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(null, null, option);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleModuleSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const moduleValue = e.target.value;\r\n if (elementJSON?.module !== moduleValue) {\r\n setRelationFieldsOptions(moduleValue);\r\n handlePropertyValueUpdate(e);\r\n }\r\n }, [elementJSON?.module, setRelationFieldsOptions, handlePropertyValueUpdate]);\r\n\r\n const handleWidthSliderChange = useCallback((_: Event, value: number | number[]) => {\r\n if (!elementJSON) return;\r\n \r\n const widthValue = Array.isArray(value) ? value[0] : value;\r\n if (elementJSON.custom_width !== widthValue) {\r\n const updatedElement = { ...elementJSON, custom_width: widthValue };\r\n setElementJSON(updatedElement);\r\n handleWidthChange(widthValue);\r\n }\r\n }, [elementJSON, handleWidthChange]);\r\n\r\n const handleFullWidthChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n if (!elementJSON) return;\r\n \r\n const isFullWidth = e.target.checked;\r\n if (elementJSON.is_fullwidth !== isFullWidth) {\r\n const updatedElement = { ...elementJSON, is_fullwidth: isFullWidth };\r\n setElementJSON(updatedElement);\r\n handlePropertyValueUpdate(e);\r\n }\r\n }, [elementJSON, handlePropertyValueUpdate]);\r\n\r\n const handleColumnSelectChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n const columnValue = Number(e.target.value);\r\n handleColumnSelect(columnValue);\r\n }, [handleColumnSelect]);\r\n\r\n // Memoized helper functions\r\n const getDefaultValue = useCallback((elementJSON: IElementJson) => {\r\n if ([\"number\", \"currency\", \"geoLocation\"].includes(elementJSON.field_type)) {\r\n return elementJSON.default_value?.toString().replace(/[^0-9]/g, \"\") || \"\";\r\n }\r\n return elementJSON.default_value || \"\";\r\n }, []);\r\n\r\n const getMinMaxLabels = useCallback((fieldType: string) => {\r\n return fieldType === \"text\" \r\n ? { min: \"Min character count (with spaces)\", max: \"Max character count (with spaces)\" }\r\n : { min: \"Min number\", max: \"Max number\" };\r\n }, []);\r\n\r\n // Modal handlers\r\n const handleOpenModal = useCallback(() => setOpenModal(true), []);\r\n const handleCloseModal = useCallback(() => {\r\n setOpenModal(false);\r\n setFunctionValue(\"\");\r\n }, []);\r\n\r\n const handleFunctionValueChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setFunctionValue(e.target.value);\r\n }, []);\r\n\r\n // Optimized effects with proper dependency arrays\r\n useEffect(() => {\r\n // Only update if element actually changed\r\n if (element !== prevElementRef.current) {\r\n setElementJSON(element);\r\n prevElementRef.current = element;\r\n \r\n if (element?.module) {\r\n setRelationFieldsOptions(element.module);\r\n }\r\n }\r\n }, [element, setRelationFieldsOptions]);\r\n\r\n // Memoized render sections to prevent unnecessary re-computation\r\n const currencySelectSection = useMemo(() => {\r\n if (elementJSON?.field_type !== \"currency\") return null;\r\n \r\n return (\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder=\"Select Currency\"\r\n size=\"small\"\r\n onChange={handleSelectUpdate}\r\n defaultValue={elementJSON.option}\r\n label=\"Currency\"\r\n name=\"option\"\r\n variant=\"outlined\"\r\n >\r\n {CURRENCY_OPTIONS.map((option, index) => (\r\n <MemoizedMenuItem \r\n key={`currency-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"currency\" \r\n />\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n );\r\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\r\n\r\n const timeSelectSection = useMemo(() => {\r\n if (elementJSON?.field_type !== \"time\") return null;\r\n \r\n return (\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder=\"Select Time Format\"\r\n size=\"small\"\r\n onChange={handleSelectUpdate}\r\n defaultValue={elementJSON.option}\r\n label=\"Time Format\"\r\n name=\"option\"\r\n variant=\"outlined\"\r\n >\r\n {SELECT_OPTIONS.map((option, index) => (\r\n <MemoizedMenuItem \r\n key={`time-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"time\" \r\n />\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n );\r\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\r\n\r\n const relationSelectSection = useMemo(() => {\r\n if (elementJSON?.field_type !== \"relation\") return null;\r\n \r\n return (\r\n <>\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder={\r\n relationModulesOptions.length\r\n ? \"Select Relation Module\"\r\n : \"No data available\"\r\n }\r\n size=\"small\"\r\n onChange={handleModuleSelect}\r\n value={elementJSON.module || \"\"}\r\n label=\"Relation Module\"\r\n name=\"module\"\r\n >\r\n {relationModulesOptions.length ? (\r\n relationModulesOptions.map((option, index) => (\r\n <MemoizedRelationMenuItem \r\n key={`module-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"module\" \r\n />\r\n ))\r\n ) : (\r\n <MenuItem disabled>\r\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\r\n <em>No data available</em>\r\n </Typography>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder={\r\n !elementJSON.module\r\n ? \"Select Module First\"\r\n : relationFields.length\r\n ? \"Select Relation Field\"\r\n : \"No data available\"\r\n }\r\n size=\"small\"\r\n onChange={handlePropertyValueUpdate}\r\n value={elementJSON.field || \"\"}\r\n label=\"Relation Field\"\r\n disabled={!elementJSON.module}\r\n name=\"field\"\r\n >\r\n {relationFields.length ? (\r\n relationFields.map((option, index) => (\r\n <MemoizedRelationMenuItem \r\n key={`field-${index}`}\r\n option={option} \r\n index={index} \r\n prefix=\"field\" \r\n />\r\n ))\r\n ) : (\r\n <MenuItem disabled>\r\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\r\n <em>No data available</em>\r\n </Typography>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n </>\r\n );\r\n }, [\r\n elementJSON?.field_type, \r\n elementJSON?.module, \r\n elementJSON?.field,\r\n relationModulesOptions, \r\n relationFields, \r\n handleModuleSelect, \r\n handlePropertyValueUpdate\r\n ]);\r\n\r\n // Early return if no element\r\n if (!elementJSON) {\r\n return null;\r\n }\r\n\r\n const { field_type } = elementJSON;\r\n const minMaxLabels = getMinMaxLabels(field_type);\r\n\r\n return (\r\n <Box className=\"formSection--FieldContainer\">\r\n {/* Field Type Selection */}\r\n <Box>\r\n <FieldSelect\r\n variant=\"outlined\"\r\n onChange={handleFieldUpdate}\r\n defaultValue={field_type}\r\n label=\"Field Type\"\r\n disabled={elementJSON.type === \"system\" || !elementJSON.is_new}\r\n />\r\n </Box>\r\n\r\n {/* Label Field */}\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Label\"\r\n is_required\r\n name=\"label\"\r\n type=\"text\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.label}\r\n />\r\n </Box>\r\n\r\n {/* File/Image Max Size */}\r\n {(field_type === \"file\" || field_type === \"image\") && (\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Max File Size (in MB)\"\r\n name=\"max_size\"\r\n type=\"number\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.max_size}\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Currency Selection - Memoized */}\r\n {currencySelectSection}\r\n\r\n {/* Placeholder and Default Value */}\r\n {!FIELDS_WITHOUT_PLACEHOLDER.has(field_type) && (\r\n <>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Placeholder\"\r\n name=\"placeholder\"\r\n type=\"text\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.placeholder}\r\n />\r\n </Box>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Default Value\"\r\n placeholder=\"Default Value\"\r\n name=\"default_value\"\r\n type={field_type === \"phone\" ? \"tel\" : field_type === \"number\" ? \"number\" : \"text\"}\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={getDefaultValue(elementJSON)}\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Time Format Selection - Memoized */}\r\n {timeSelectSection}\r\n\r\n {/* Relation Module and Field Selection - Memoized */}\r\n {relationSelectSection}\r\n\r\n {/* Min/Max Length for Text and Number Fields */}\r\n {FIELDS_WITH_MIN_MAX.has(field_type) && (\r\n <>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label={minMaxLabels.min}\r\n name=\"min_length\"\r\n type=\"number\"\r\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\r\n defaultValue={elementJSON.min_length || elementJSON.min || 1}\r\n />\r\n </Box>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label={minMaxLabels.max}\r\n name=\"max_length\"\r\n type=\"number\"\r\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\r\n defaultValue={\r\n elementJSON.max_length || \r\n elementJSON.max || \r\n (field_type === 'number' ? 10000 : 255)\r\n }\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Column Per Row Selection */}\r\n <Box>\r\n <FormControl fullWidth>\r\n <Select\r\n fullWidth\r\n placeholder=\"Select Column Per Row\"\r\n size=\"small\"\r\n onChange={handleColumnSelectChange}\r\n value={elementJSON.columns_per_row || 1}\r\n label=\"Select Column Per Row\"\r\n name=\"columns_per_row\"\r\n variant=\"outlined\"\r\n >\r\n {COLUMN_PER_ROW_OPTIONS.map((option, index) => (\r\n <MenuItem key={`column-${index}`} value={option}>\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n\r\n {/* Width Adjustment Slider */}\r\n <Box>\r\n <Typography sx={{ color: 'black', mb: 1 }}>\r\n Adjust Width:\r\n </Typography>\r\n <Slider\r\n value={elementJSON.custom_width || 12}\r\n name=\"custom_width\"\r\n min={1}\r\n max={12}\r\n step={1}\r\n onChange={handleWidthSliderChange}\r\n aria-labelledby=\"width-slider\"\r\n sx={{ color: \"#4AC08C\" }}\r\n disabled={elementJSON.is_fullwidth}\r\n marks\r\n valueLabelDisplay=\"auto\"\r\n />\r\n </Box>\r\n\r\n {/* Number Field Specific Options */}\r\n {field_type === \"number\" && (\r\n <>\r\n <Box>\r\n <TextField\r\n fullWidth\r\n label=\"Float Step\"\r\n name=\"float_step\"\r\n type=\"number\"\r\n step=\"0.01\"\r\n onChange={handlePropertyValueUpdate}\r\n defaultValue={elementJSON.float_step}\r\n />\r\n </Box>\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_negative\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_negative || false}\r\n label=\"Allow Negative Numbers\"\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Date Field Specific Options */}\r\n {field_type === \"date\" && (\r\n <>\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_future_dates_allowed\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_future_dates_allowed || false}\r\n label=\"Allow Future Dates\"\r\n />\r\n </Box>\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_past_dates_allowed\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_past_dates_allowed || false}\r\n label=\"Allow Past Dates\"\r\n />\r\n </Box>\r\n </>\r\n )}\r\n\r\n {/* Required Field Checkbox */}\r\n {field_type !== \"info\" && (\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_required\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_required || false}\r\n label=\"This field is required\"\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Email Unique Checkbox */}\r\n {field_type === \"email\" && (\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_unique\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_unique || false}\r\n label=\"Is Unique\"\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Text Multiline Checkbox */}\r\n {field_type === \"text\" && (\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_multiline\"\r\n control={<Checkbox />}\r\n onChange={handlePropertyValueUpdate}\r\n checked={elementJSON.is_multiline || false}\r\n label=\"Is Multiline\"\r\n />\r\n </Box>\r\n )}\r\n\r\n {/* Full Width Checkbox */}\r\n <Box>\r\n <FormControlLabel\r\n name=\"is_fullwidth\"\r\n control={<Checkbox />}\r\n onChange={handleFullWidthChange}\r\n checked={elementJSON.is_fullwidth || false}\r\n label=\"Full Width\"\r\n />\r\n </Box>\r\n\r\n {/* Info Field Function Button */}\r\n {field_type === \"info\" && (\r\n <Box>\r\n <Button\r\n variant=\"outlined\"\r\n startIcon={<Add />}\r\n onClick={handleOpenModal}\r\n className=\"formSection--PreviewButton\"\r\n >\r\n Add Function\r\n </Button>\r\n </Box>\r\n )}\r\n\r\n {/* Function Modal */}\r\n <Modal fullWidth onClose={handleCloseModal} open={openModal}>\r\n <DialogTitle>\r\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\r\n Add Function\r\n </Typography>\r\n <IconButton\r\n edge=\"end\"\r\n onClick={handleCloseModal}\r\n size=\"small\"\r\n >\r\n <Close fontSize=\"inherit\" />\r\n </IconButton>\r\n </DialogTitle>\r\n <DialogContent dividers>\r\n <Typography weight=\"medium\" type=\"s3\" color=\"theme.secondary.700\" sx={{ mb: 2 }}>\r\n Label: <span style={{ color: \"#1F2125\" }}>{elementJSON.label}</span>\r\n </Typography>\r\n <TextField\r\n name=\"default_value\"\r\n fullWidth\r\n placeholder=\"Add a function\"\r\n multiline\r\n minRows={4}\r\n defaultValue={elementJSON.default_value}\r\n onChange={handleFunctionValueChange}\r\n value={functionValue}\r\n />\r\n </DialogContent>\r\n <DialogActions>\r\n <Button\r\n variant=\"outlined\"\r\n onClick={handleCloseModal}\r\n style={{ color: \"black\" }}\r\n >\r\n Cancel\r\n </Button>\r\n <Button onClick={() => handleSave(functionValue)}>\r\n Save\r\n </Button>\r\n </DialogActions>\r\n </Modal>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default TextEditForm;"],"names":["COLUMN_PER_ROW_OPTIONS","SELECT_OPTIONS","text","value","CURRENCY_OPTIONS","FIELDS_WITHOUT_PLACEHOLDER","Set","FIELDS_WITH_MIN_MAX","MemoizedMenuItem","option","index","prefix","MenuItem","children","label","MemoizedRelationMenuItem","jsx","Typography","type","color","TextEditForm","props","handlePropertyValueUpdate","handleColumnSelect","handleWidthChange","fields","element","elementJSON","setElementJSON","useState","openModal","setOpenModal","relationFields","setRelationFields","functionValue","setFunctionValue","prevElementRef","useRef","prevFieldsRef","relationModulesOptions","useMemo","current","Object","keys","map","key","formatText","setRelationFieldsOptions","useCallback","moduleValue","prev","length","fieldsArr","options","field","some","item","idx","_a","_b","handleSave","default_value","updatedElement","handleFieldUpdate","e","fieldType","target","field_type","handleSelectUpdate","handleModuleSelect","module","handleWidthSliderChange","_","widthValue","Array","isArray","custom_width","handleFullWidthChange","isFullWidth","checked","is_fullwidth","handleColumnSelectChange","columnValue","Number","getDefaultValue","includes","toString","replace","getMinMaxLabels","min","max","handleOpenModal","handleCloseModal","handleFunctionValueChange","useEffect","currencySelectSection","Box","FormControl","fullWidth","Select","placeholder","size","onChange","defaultValue","name","variant","timeSelectSection","relationSelectSection","jsxs","Fragment","disabled","minMaxLabels","className","FieldSelect","is_new","TextField","is_required","max_size","has","min_length","max_length","columns_per_row","sx","mb","Slider","step","marks","valueLabelDisplay","float_step","FormControlLabel","control","Checkbox","is_negative","is_future_dates_allowed","is_past_dates_allowed","is_unique","is_multiline","Button","startIcon","Add","onClick","Modal","onClose","open","DialogTitle","weight","IconButton","edge","Close","fontSize","DialogContent","dividers","style","multiline","minRows","DialogActions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/form-builder/element-edit-forms/text.tsx"],"sourcesContent":["// React imports\nimport { useCallback, useEffect, useState, useMemo, useRef } from \"react\";\n\n// Material UI imports\nimport {\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n MenuItem,\n Box,\n FormControlLabel,\n FormControl,\n Slider,\n} from \"@mui/material\";\nimport { Add, Close } from \"@mui/icons-material\";\n\n// ERP Common imports\nimport Button from \"@/components/button/button\";\nimport Modal from \"@/components/modal/modal\";\nimport Typography from \"@/components/typography/typography\";\nimport TextField from \"@/components/text-field/text-field\";\nimport Select from \"@/components/select/select\";\nimport Checkbox from \"@/components/checkbox/checkbox\";\nimport formatText from \"@/utils/format-text\";\n\n// Local imports\nimport FieldSelect from \"./field-select\";\nimport { IElementJson } from \"../custom-form\";\nimport { ApiFormFields } from \"../../Redux/state\";\nimport \"../custom-form.scss\";\n\ninterface Option {\n label: string;\n value: string;\n}\n\ninterface ITextEditFormProps {\n handleWidthChange: (value?: number) => void;\n handleColumnSelect: (value?: number) => void;\n handlePropertyValueUpdate: (\n event?: React.ChangeEvent<HTMLInputElement>,\n numberValue?: number,\n value?: any,\n fieldType?: string,\n ) => void;\n element: IElementJson | null;\n fields: ApiFormFields | null;\n}\n\n// Constants moved outside to prevent re-creation\nconst COLUMN_PER_ROW_OPTIONS = [1, 2, 3, 4, 5, 6] as const;\nconst SELECT_OPTIONS = [\n { text: \"12 Hour\", value: \"12hr\" },\n { text: \"24 Hour\", value: \"24hr\" },\n] as const;\nconst CURRENCY_OPTIONS = [\n { text: \"INR (India)\", value: \"inr\" },\n { text: \"USD (US)\", value: \"usd\" },\n] as const;\n\nconst FIELDS_WITHOUT_PLACEHOLDER = new Set([\n \"time\", \"file\", \"geoLocation\", \"image\", \"info\", \"relation\"\n]);\nconst FIELDS_WITH_MIN_MAX = new Set([\"text\", \"number\"]);\n\n// Memoized components to prevent unnecessary re-renders\nconst MemoizedMenuItem = ({ option, index, prefix }: { option: any; index: number; prefix: string }) => (\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\n {option.text || option.label}\n </MenuItem>\n);\n\nconst MemoizedRelationMenuItem = ({ option, index, prefix }: { option: Option; index: number; prefix: string }) => (\n <MenuItem key={`${prefix}-${index}`} value={option.value}>\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\n {option.label}\n </Typography>\n </MenuItem>\n);\n\nexport function TextEditForm(props: ITextEditFormProps) {\n const { \n handlePropertyValueUpdate, \n handleColumnSelect, \n handleWidthChange, \n fields, \n element \n } = props;\n\n // State management - optimized to prevent unnecessary re-renders\n const [elementJSON, setElementJSON] = useState<IElementJson | null>(element);\n const [openModal, setOpenModal] = useState(false);\n const [relationFields, setRelationFields] = useState<Option[]>([]);\n const [functionValue, setFunctionValue] = useState(\"\");\n \n // Use refs to track previous values and prevent unnecessary updates\n const prevElementRef = useRef<IElementJson | null>(element);\n const prevFieldsRef = useRef<ApiFormFields | null>(fields);\n\n // Memoized relation modules with deep comparison prevention\n const relationModulesOptions = useMemo(() => {\n if (!fields || fields === prevFieldsRef.current) {\n if (prevFieldsRef.current && fields) return prevFieldsRef.current;\n }\n \n prevFieldsRef.current = fields;\n \n if (!fields) return [];\n return Object.keys(fields).map((key) => ({\n label: formatText(key),\n value: key,\n }));\n }, [fields]);\n\n // Optimized relation fields setter with memoization\n const setRelationFieldsOptions = useCallback(\n (moduleValue?: string) => {\n if (!fields || !moduleValue) {\n setRelationFields(prev => prev.length > 0 ? [] : prev);\n return;\n }\n\n const fieldsArr = fields[moduleValue];\n if (fieldsArr?.length) {\n const options = fieldsArr.map((field) => ({\n label: field.field,\n value: field.field,\n }));\n \n // Only update if options actually changed\n setRelationFields(prev => {\n if (prev.length !== options.length) return options;\n const isDifferent = prev.some((item, idx) => \n item.value !== options[idx]?.value || item.label !== options[idx]?.label\n );\n return isDifferent ? options : prev;\n });\n } else {\n setRelationFields(prev => prev.length > 0 ? [] : prev);\n }\n },\n [fields]\n );\n\n // Memoized event handlers to prevent child re-renders\n const handleSave = useCallback((value: string) => {\n if (!elementJSON) return;\n \n // Only update if value actually changed\n if (elementJSON.default_value !== value) {\n const updatedElement = { ...elementJSON, default_value: value };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(null, null, value);\n }\n \n if (value) {\n setFunctionValue(\"\");\n setOpenModal(false);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleFieldUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n if (!elementJSON) return;\n \n const fieldType = e.target.value;\n if (elementJSON.field_type !== fieldType) {\n const updatedElement = { ...elementJSON, field_type: fieldType };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(null, null, null, e.target.value);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleSelectUpdate = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n if (!elementJSON) return;\n \n const option = e.target.value;\n if (elementJSON.option !== option) {\n const updatedElement = { ...elementJSON, option };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(null, null, option);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleModuleSelect = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const moduleValue = e.target.value;\n if (elementJSON?.module !== moduleValue) {\n setRelationFieldsOptions(moduleValue);\n handlePropertyValueUpdate(e);\n }\n }, [elementJSON?.module, setRelationFieldsOptions, handlePropertyValueUpdate]);\n\n const handleWidthSliderChange = useCallback((_: Event, value: number | number[]) => {\n if (!elementJSON) return;\n \n const widthValue = Array.isArray(value) ? value[0] : value;\n if (elementJSON.custom_width !== widthValue) {\n const updatedElement = { ...elementJSON, custom_width: widthValue };\n setElementJSON(updatedElement);\n handleWidthChange(widthValue);\n }\n }, [elementJSON, handleWidthChange]);\n\n const handleFullWidthChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n if (!elementJSON) return;\n \n const isFullWidth = e.target.checked;\n if (elementJSON.is_fullwidth !== isFullWidth) {\n const updatedElement = { ...elementJSON, is_fullwidth: isFullWidth };\n setElementJSON(updatedElement);\n handlePropertyValueUpdate(e);\n }\n }, [elementJSON, handlePropertyValueUpdate]);\n\n const handleColumnSelectChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const columnValue = Number(e.target.value);\n handleColumnSelect(columnValue);\n }, [handleColumnSelect]);\n\n // Memoized helper functions\n const getDefaultValue = useCallback((elementJSON: IElementJson) => {\n if ([\"number\", \"currency\", \"geoLocation\"].includes(elementJSON.field_type)) {\n return elementJSON.default_value?.toString().replace(/[^0-9]/g, \"\") || \"\";\n }\n return elementJSON.default_value || \"\";\n }, []);\n\n const getMinMaxLabels = useCallback((fieldType: string) => {\n return fieldType === \"text\" \n ? { min: \"Min character count (with spaces)\", max: \"Max character count (with spaces)\" }\n : { min: \"Min number\", max: \"Max number\" };\n }, []);\n\n // Modal handlers\n const handleOpenModal = useCallback(() => setOpenModal(true), []);\n const handleCloseModal = useCallback(() => {\n setOpenModal(false);\n setFunctionValue(\"\");\n }, []);\n\n const handleFunctionValueChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setFunctionValue(e.target.value);\n }, []);\n\n // Optimized effects with proper dependency arrays\n useEffect(() => {\n // Only update if element actually changed\n if (element !== prevElementRef.current) {\n setElementJSON(element);\n prevElementRef.current = element;\n \n if (element?.module) {\n setRelationFieldsOptions(element.module);\n }\n }\n }, [element, setRelationFieldsOptions]);\n\n // Memoized render sections to prevent unnecessary re-computation\n const currencySelectSection = useMemo(() => {\n if (elementJSON?.field_type !== \"currency\") return null;\n \n return (\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder=\"Select Currency\"\n size=\"small\"\n onChange={handleSelectUpdate}\n defaultValue={elementJSON.option}\n label=\"Currency\"\n name=\"option\"\n variant=\"outlined\"\n >\n {CURRENCY_OPTIONS.map((option, index) => (\n <MemoizedMenuItem \n key={`currency-${index}`}\n option={option} \n index={index} \n prefix=\"currency\" \n />\n ))}\n </Select>\n </FormControl>\n </Box>\n );\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\n\n const timeSelectSection = useMemo(() => {\n if (elementJSON?.field_type !== \"time\") return null;\n \n return (\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder=\"Select Time Format\"\n size=\"small\"\n onChange={handleSelectUpdate}\n defaultValue={elementJSON.option}\n label=\"Time Format\"\n name=\"option\"\n variant=\"outlined\"\n >\n {SELECT_OPTIONS.map((option, index) => (\n <MemoizedMenuItem \n key={`time-${index}`}\n option={option} \n index={index} \n prefix=\"time\" \n />\n ))}\n </Select>\n </FormControl>\n </Box>\n );\n }, [elementJSON?.field_type, elementJSON?.option, handleSelectUpdate]);\n\n const relationSelectSection = useMemo(() => {\n if (elementJSON?.field_type !== \"relation\") return null;\n \n return (\n <>\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder={\n relationModulesOptions.length\n ? \"Select Relation Module\"\n : \"No data available\"\n }\n size=\"small\"\n onChange={handleModuleSelect}\n value={elementJSON.module || \"\"}\n label=\"Relation Module\"\n name=\"module\"\n >\n {relationModulesOptions.length ? (\n relationModulesOptions.map((option, index) => (\n <MemoizedRelationMenuItem \n key={`module-${index}`}\n option={option} \n index={index} \n prefix=\"module\" \n />\n ))\n ) : (\n <MenuItem disabled>\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\n <em>No data available</em>\n </Typography>\n </MenuItem>\n )}\n </Select>\n </FormControl>\n </Box>\n\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder={\n !elementJSON.module\n ? \"Select Module First\"\n : relationFields.length\n ? \"Select Relation Field\"\n : \"No data available\"\n }\n size=\"small\"\n onChange={handlePropertyValueUpdate}\n value={elementJSON.field || \"\"}\n label=\"Relation Field\"\n disabled={!elementJSON.module}\n name=\"field\"\n >\n {relationFields.length ? (\n relationFields.map((option, index) => (\n <MemoizedRelationMenuItem \n key={`field-${index}`}\n option={option} \n index={index} \n prefix=\"field\" \n />\n ))\n ) : (\n <MenuItem disabled>\n <Typography type=\"s3\" color=\"theme.secondary.1000\">\n <em>No data available</em>\n </Typography>\n </MenuItem>\n )}\n </Select>\n </FormControl>\n </Box>\n </>\n );\n }, [\n elementJSON?.field_type, \n elementJSON?.module, \n elementJSON?.field,\n relationModulesOptions, \n relationFields, \n handleModuleSelect, \n handlePropertyValueUpdate\n ]);\n\n // Early return if no element\n if (!elementJSON) {\n return null;\n }\n\n const { field_type } = elementJSON;\n const minMaxLabels = getMinMaxLabels(field_type);\n\n return (\n <Box className=\"formSection--FieldContainer\">\n {/* Field Type Selection */}\n <Box>\n <FieldSelect\n variant=\"outlined\"\n onChange={handleFieldUpdate}\n defaultValue={field_type}\n label=\"Field Type\"\n disabled={elementJSON.type === \"system\" || !elementJSON.is_new}\n />\n </Box>\n\n {/* Label Field */}\n <Box>\n <TextField\n fullWidth\n label=\"Label\"\n is_required\n name=\"label\"\n type=\"text\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.label}\n />\n </Box>\n\n {/* File/Image Max Size */}\n {(field_type === \"file\" || field_type === \"image\") && (\n <Box>\n <TextField\n fullWidth\n label=\"Max File Size (in MB)\"\n name=\"max_size\"\n type=\"number\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.max_size}\n />\n </Box>\n )}\n\n {/* Currency Selection - Memoized */}\n {currencySelectSection}\n\n {/* Placeholder and Default Value */}\n {!FIELDS_WITHOUT_PLACEHOLDER.has(field_type) && (\n <>\n <Box>\n <TextField\n fullWidth\n label=\"Placeholder\"\n name=\"placeholder\"\n type=\"text\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.placeholder}\n />\n </Box>\n <Box>\n <TextField\n fullWidth\n label=\"Default Value\"\n placeholder=\"Default Value\"\n name=\"default_value\"\n type={field_type === \"phone\" ? \"tel\" : field_type === \"number\" ? \"number\" : \"text\"}\n onChange={handlePropertyValueUpdate}\n defaultValue={getDefaultValue(elementJSON)}\n />\n </Box>\n </>\n )}\n\n {/* Time Format Selection - Memoized */}\n {timeSelectSection}\n\n {/* Relation Module and Field Selection - Memoized */}\n {relationSelectSection}\n\n {/* Min/Max Length for Text and Number Fields */}\n {FIELDS_WITH_MIN_MAX.has(field_type) && (\n <>\n <Box>\n <TextField\n fullWidth\n label={minMaxLabels.min}\n name=\"min_length\"\n type=\"number\"\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\n defaultValue={elementJSON.min_length || elementJSON.min || 1}\n />\n </Box>\n <Box>\n <TextField\n fullWidth\n label={minMaxLabels.max}\n name=\"max_length\"\n type=\"number\"\n onChange={(e) => handlePropertyValueUpdate(e, Number(e.target.value))}\n defaultValue={\n elementJSON.max_length || \n elementJSON.max || \n (field_type === 'number' ? 10000 : 255)\n }\n />\n </Box>\n </>\n )}\n\n {/* Column Per Row Selection */}\n <Box>\n <FormControl fullWidth>\n <Select\n fullWidth\n placeholder=\"Select Column Per Row\"\n size=\"small\"\n onChange={handleColumnSelectChange}\n value={elementJSON.columns_per_row || 1}\n label=\"Select Column Per Row\"\n name=\"columns_per_row\"\n variant=\"outlined\"\n >\n {COLUMN_PER_ROW_OPTIONS.map((option, index) => (\n <MenuItem key={`column-${index}`} value={option}>\n {option}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n\n {/* Width Adjustment Slider */}\n <Box>\n <Typography sx={{ color: 'black', mb: 1 }}>\n Adjust Width:\n </Typography>\n <Slider\n value={elementJSON.custom_width || 12}\n name=\"custom_width\"\n min={1}\n max={12}\n step={1}\n onChange={handleWidthSliderChange}\n aria-labelledby=\"width-slider\"\n sx={{ color: \"#4AC08C\" }}\n disabled={elementJSON.is_fullwidth}\n marks\n valueLabelDisplay=\"auto\"\n />\n </Box>\n\n {/* Number Field Specific Options */}\n {field_type === \"number\" && (\n <>\n <Box>\n <TextField\n fullWidth\n label=\"Float Step\"\n name=\"float_step\"\n type=\"number\"\n step=\"0.01\"\n onChange={handlePropertyValueUpdate}\n defaultValue={elementJSON.float_step}\n />\n </Box>\n <Box>\n <FormControlLabel\n name=\"is_negative\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_negative || false}\n label=\"Allow Negative Numbers\"\n />\n </Box>\n </>\n )}\n\n {/* Date Field Specific Options */}\n {field_type === \"date\" && (\n <>\n <Box>\n <FormControlLabel\n name=\"is_future_dates_allowed\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_future_dates_allowed || false}\n label=\"Allow Future Dates\"\n />\n </Box>\n <Box>\n <FormControlLabel\n name=\"is_past_dates_allowed\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_past_dates_allowed || false}\n label=\"Allow Past Dates\"\n />\n </Box>\n </>\n )}\n\n {/* Required Field Checkbox */}\n {field_type !== \"info\" && (\n <Box>\n <FormControlLabel\n name=\"is_required\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_required || false}\n label=\"This field is required\"\n />\n </Box>\n )}\n\n {/* Email Unique Checkbox */}\n {field_type === \"email\" && (\n <Box>\n <FormControlLabel\n name=\"is_unique\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_unique || false}\n label=\"Is Unique\"\n />\n </Box>\n )}\n\n {/* Text Multiline Checkbox */}\n {field_type === \"text\" && (\n <Box>\n <FormControlLabel\n name=\"is_multiline\"\n control={<Checkbox />}\n onChange={handlePropertyValueUpdate}\n checked={elementJSON.is_multiline || false}\n label=\"Is Multiline\"\n />\n </Box>\n )}\n\n {/* Full Width Checkbox */}\n <Box>\n <FormControlLabel\n name=\"is_fullwidth\"\n control={<Checkbox />}\n onChange={handleFullWidthChange}\n checked={elementJSON.is_fullwidth || false}\n label=\"Full Width\"\n />\n </Box>\n\n {/* Info Field Function Button */}\n {field_type === \"info\" && (\n <Box>\n <Button\n variant=\"outlined\"\n startIcon={<Add />}\n onClick={handleOpenModal}\n className=\"formSection--PreviewButton\"\n >\n Add Function\n </Button>\n </Box>\n )}\n\n {/* Function Modal */}\n <Modal fullWidth onClose={handleCloseModal} open={openModal}>\n <DialogTitle>\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Add Function\n </Typography>\n <IconButton\n edge=\"end\"\n onClick={handleCloseModal}\n size=\"small\"\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n </DialogTitle>\n <DialogContent dividers>\n <Typography weight=\"medium\" type=\"s3\" color=\"theme.secondary.700\" sx={{ mb: 2 }}>\n Label: <span style={{ color: \"#1F2125\" }}>{elementJSON.label}</span>\n </Typography>\n <TextField\n name=\"default_value\"\n fullWidth\n placeholder=\"Add a function\"\n multiline\n minRows={4}\n defaultValue={elementJSON.default_value}\n onChange={handleFunctionValueChange}\n value={functionValue}\n />\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"outlined\"\n onClick={handleCloseModal}\n style={{ color: \"black\" }}\n >\n Cancel\n </Button>\n <Button onClick={() => handleSave(functionValue)}>\n Save\n </Button>\n </DialogActions>\n </Modal>\n </Box>\n );\n}\n\nexport default TextEditForm;"],"names":["COLUMN_PER_ROW_OPTIONS","SELECT_OPTIONS","text","value","CURRENCY_OPTIONS","FIELDS_WITHOUT_PLACEHOLDER","Set","FIELDS_WITH_MIN_MAX","MemoizedMenuItem","option","index","prefix","MenuItem","children","label","MemoizedRelationMenuItem","jsx","Typography","type","color","TextEditForm","props","handlePropertyValueUpdate","handleColumnSelect","handleWidthChange","fields","element","elementJSON","setElementJSON","useState","openModal","setOpenModal","relationFields","setRelationFields","functionValue","setFunctionValue","prevElementRef","useRef","prevFieldsRef","relationModulesOptions","useMemo","current","Object","keys","map","key","formatText","setRelationFieldsOptions","useCallback","moduleValue","prev","length","fieldsArr","options","field","some","item","idx","_a","_b","handleSave","default_value","updatedElement","handleFieldUpdate","e","fieldType","target","field_type","handleSelectUpdate","handleModuleSelect","module","handleWidthSliderChange","_","widthValue","Array","isArray","custom_width","handleFullWidthChange","isFullWidth","checked","is_fullwidth","handleColumnSelectChange","columnValue","Number","getDefaultValue","includes","toString","replace","getMinMaxLabels","min","max","handleOpenModal","handleCloseModal","handleFunctionValueChange","useEffect","currencySelectSection","Box","FormControl","fullWidth","Select","placeholder","size","onChange","defaultValue","name","variant","timeSelectSection","relationSelectSection","jsxs","Fragment","disabled","minMaxLabels","className","FieldSelect","is_new","TextField","is_required","max_size","has","min_length","max_length","columns_per_row","sx","mb","Slider","step","marks","valueLabelDisplay","float_step","FormControlLabel","control","Checkbox","is_negative","is_future_dates_allowed","is_past_dates_allowed","is_unique","is_multiline","Button","startIcon","Add","onClick","Modal","onClose","open","DialogTitle","weight","IconButton","edge","Close","fontSize","DialogContent","dividers","style","multiline","minRows","DialogActions"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/form-builder/field_properties.ts"],"sourcesContent":["import { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\r\n\r\nexport interface IProperty {\r\n field_type: string;\r\n label: string;\r\n placeholder: string;\r\n default_value?: string;\r\n float_step?: string;\r\n min_length?: number;\r\n max_length?: number;\r\n is_multiline?: boolean;\r\n is_required?: boolean;\r\n is_negative?: boolean;\r\n is_unique?: boolean;\r\n is_checked?: boolean;\r\n // options?: Array<{ text: string; value: string }>;\r\n // is_multiselect?: boolean,\r\n id?: string;\r\n is_future_dates_allowed?: boolean;\r\n is_past_dates_allowed?: boolean;\r\n option?: string;\r\n max_size?: number;\r\n section_id?: string;\r\n section_name?: string;\r\n title_position?: \"start\" | \"end\"\r\n title?:string,\r\n table_columns?:MRT_ColumnDef<MRT_RowData>[]\r\n table?:string\r\n module?:string\r\n field?:string\r\n is_country_code_separate?: boolean;\r\n country_code_field_name?: string;\r\n}\r\n\r\ninterface IMultiOption {\r\n value: string;\r\n label: string;\r\n is_checked: boolean;\r\n}\r\n\r\nexport interface IMultiOptionsProperty extends IProperty {\r\n options: IMultiOption[];\r\n display?: \"row\" | \"column\";\r\n}\r\n\r\nexport interface ISelectProperty {\r\n field_type: string;\r\n label: string;\r\n placeholder: string;\r\n default_value: string;\r\n is_required?: boolean;\r\n is_unique?: boolean;\r\n options: ISelectOption[];\r\n is_multiselect?: boolean;\r\n id?: string;\r\n section_id?: string;\r\n section_name?: string;\r\n}\r\n\r\nexport interface ISwitcherForms {\r\n value?: string;\r\n name: string;\r\n id: string | number | null;\r\n}\r\n\r\nexport interface ISectionProperty {\r\n field_type: string;\r\n label: string;\r\n is_accordion: boolean;\r\n id?: string;\r\n section_order?: string;\r\n section_id?: string;\r\n section_name?: string;\r\n section_type: \"Default\" | \"Form switcher section\";\r\n form_switcher_label?: string;\r\n form_switcher_name?: string;\r\n switcher_forms?: ISwitcherForms[];\r\n members: IProperty[] | ISelectProperty[];\r\n}\r\n\r\n\r\ninterface ISelectOption {\r\n text: string;\r\n value: string;\r\n}\r\n\r\nconst text: IProperty = {\r\n field_type: \"text\",\r\n label: \"label\",\r\n placeholder: \"Enter text\",\r\n default_value: \"\",\r\n min_length: 2,\r\n max_length: 30,\r\n is_multiline: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nconst number: IProperty = {\r\n field_type: \"number\",\r\n label: \"label\",\r\n placeholder: \"Enter number\",\r\n default_value: \"\",\r\n float_step: \"0.001\", // \"0.001\",\r\n min_length: 0,\r\n max_length: 1000,\r\n is_negative: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nconst email: IProperty = {\r\n field_type: \"email\",\r\n label: \"label\",\r\n placeholder: \"Enter email\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst phone: IProperty = {\r\n field_type: \"phone\",\r\n label: \"label\",\r\n placeholder: \"Enter phone\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst select: ISelectProperty = {\r\n field_type: \"select\",\r\n label: \"Select\",\r\n placeholder: \"Choose option\",\r\n default_value: \"\",\r\n options: [],\r\n is_multiselect: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nconst date: IProperty = {\r\n field_type: \"date\",\r\n label: \"label\",\r\n placeholder: \"Select Date\",\r\n default_value: \"\",\r\n is_future_dates_allowed: false,\r\n is_past_dates_allowed: false,\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst time: IProperty = {\r\n field_type: \"time\",\r\n label: \"label\",\r\n placeholder: \"Select Time\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n option: \"12hr\",\r\n};\r\n\r\nconst url: IProperty = {\r\n field_type: \"url\",\r\n label: \"label\",\r\n placeholder: \"Enter URL\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst currency: IProperty = {\r\n field_type: \"currency\",\r\n label: \"label\",\r\n placeholder: \"Enter Currency\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n option: \"inr\",\r\n};\r\n\r\nconst file: IProperty = {\r\n field_type: \"file\",\r\n label: \"label\",\r\n placeholder: \"Upload File or Media\",\r\n is_required: false,\r\n is_unique: false,\r\n max_size: 20,\r\n default_value: \"\",\r\n};\r\n\r\nconst image: IProperty = {\r\n field_type: \"image\",\r\n label: \"label\",\r\n placeholder: \"Upload Image\",\r\n is_required: false,\r\n is_unique: false,\r\n max_size: 20,\r\n default_value: \"\",\r\n};\r\n\r\nconst geoLocation: IProperty = {\r\n field_type: \"geoLocation\",\r\n label: \"label\",\r\n placeholder: \"Enter geo location\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst section: ISectionProperty = {\r\n field_type: \"section\",\r\n label: \"section\",\r\n section_type: \"Default\",\r\n form_switcher_label: \"Form section\",\r\n form_switcher_name: \"\",\r\n switcher_forms: [{\r\n value: \"\",\r\n name: \"Form 1\",\r\n id: null,\r\n }],\r\n is_accordion: false,\r\n members: [],\r\n};\r\n\r\nconst info: IProperty = {\r\n field_type: \"info\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n default_value: \"\",\r\n};\r\n\r\nconst relation: IProperty = {\r\n field_type: \"relation\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n is_unique: false,\r\n module: \"\",\r\n field: \"\",\r\n default_value: \"\",\r\n};\r\n\r\nconst checkbox: IProperty = {\r\n field_type: \"checkbox\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n is_checked: false,\r\n title_position:'end',\r\n title:\"Checkbox\"\r\n};\r\n\r\nconst toggleButton: IProperty = {\r\n field_type: \"toggleButton\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n is_checked: false,\r\n title_position:'end',\r\n title:\"Toggle\"\r\n};\r\n\r\nconst table: IProperty = {\r\n field_type: \"table\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n table_columns: [],\r\n table: \"custom\",\r\n};\r\nconst radioButton: IMultiOptionsProperty = {\r\n field_type: \"radioButton\",\r\n placeholder: \"\",\r\n label: \"label\",\r\n title: \"\",\r\n is_required: false,\r\n title_position:'end',\r\n options: [],\r\n display: \"row\",\r\n default_value: \"\",\r\n};\r\nconst tagsInput: IProperty = {\r\n field_type: \"tagsInput\",\r\n label: \"label\",\r\n placeholder: \"Enter tagsInput\",\r\n default_value: \"\",\r\n min_length: 2,\r\n max_length: 30,\r\n is_multiline: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nexport const element = {\r\n text,\r\n number,\r\n email,\r\n phone,\r\n select,\r\n date,\r\n time,\r\n url,\r\n currency,\r\n file,\r\n geoLocation,\r\n image,\r\n section,\r\n info,\r\n relation,\r\n checkbox,\r\n toggleButton,\r\n radioButton,\r\n table,\r\n tagsInput\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/form-builder/field_properties.ts"],"sourcesContent":["import { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\n\nexport interface IProperty {\n field_type: string;\n label: string;\n placeholder: string;\n default_value?: string;\n float_step?: string;\n min_length?: number;\n max_length?: number;\n is_multiline?: boolean;\n is_required?: boolean;\n is_negative?: boolean;\n is_unique?: boolean;\n is_checked?: boolean;\n // options?: Array<{ text: string; value: string }>;\n // is_multiselect?: boolean,\n id?: string;\n is_future_dates_allowed?: boolean;\n is_past_dates_allowed?: boolean;\n option?: string;\n max_size?: number;\n section_id?: string;\n section_name?: string;\n title_position?: \"start\" | \"end\"\n title?:string,\n table_columns?:MRT_ColumnDef<MRT_RowData>[]\n table?:string\n module?:string\n field?:string\n is_country_code_separate?: boolean;\n country_code_field_name?: string;\n}\n\ninterface IMultiOption {\n value: string;\n label: string;\n is_checked: boolean;\n}\n\nexport interface IMultiOptionsProperty extends IProperty {\n options: IMultiOption[];\n display?: \"row\" | \"column\";\n}\n\nexport interface ISelectProperty {\n field_type: string;\n label: string;\n placeholder: string;\n default_value: string;\n is_required?: boolean;\n is_unique?: boolean;\n options: ISelectOption[];\n is_multiselect?: boolean;\n id?: string;\n section_id?: string;\n section_name?: string;\n}\n\nexport interface ISwitcherForms {\n value?: string;\n name: string;\n id: string | number | null;\n}\n\nexport interface ISectionProperty {\n field_type: string;\n label: string;\n is_accordion: boolean;\n id?: string;\n section_order?: string;\n section_id?: string;\n section_name?: string;\n section_type: \"Default\" | \"Form switcher section\";\n form_switcher_label?: string;\n form_switcher_name?: string;\n switcher_forms?: ISwitcherForms[];\n members: IProperty[] | ISelectProperty[];\n}\n\n\ninterface ISelectOption {\n text: string;\n value: string;\n}\n\nconst text: IProperty = {\n field_type: \"text\",\n label: \"label\",\n placeholder: \"Enter text\",\n default_value: \"\",\n min_length: 2,\n max_length: 30,\n is_multiline: false,\n is_required: true,\n is_unique: false,\n};\n\nconst number: IProperty = {\n field_type: \"number\",\n label: \"label\",\n placeholder: \"Enter number\",\n default_value: \"\",\n float_step: \"0.001\", // \"0.001\",\n min_length: 0,\n max_length: 1000,\n is_negative: false,\n is_required: true,\n is_unique: false,\n};\n\nconst email: IProperty = {\n field_type: \"email\",\n label: \"label\",\n placeholder: \"Enter email\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst phone: IProperty = {\n field_type: \"phone\",\n label: \"label\",\n placeholder: \"Enter phone\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst select: ISelectProperty = {\n field_type: \"select\",\n label: \"Select\",\n placeholder: \"Choose option\",\n default_value: \"\",\n options: [],\n is_multiselect: false,\n is_required: true,\n is_unique: false,\n};\n\nconst date: IProperty = {\n field_type: \"date\",\n label: \"label\",\n placeholder: \"Select Date\",\n default_value: \"\",\n is_future_dates_allowed: false,\n is_past_dates_allowed: false,\n is_required: false,\n is_unique: false,\n};\n\nconst time: IProperty = {\n field_type: \"time\",\n label: \"label\",\n placeholder: \"Select Time\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n option: \"12hr\",\n};\n\nconst url: IProperty = {\n field_type: \"url\",\n label: \"label\",\n placeholder: \"Enter URL\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst currency: IProperty = {\n field_type: \"currency\",\n label: \"label\",\n placeholder: \"Enter Currency\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n option: \"inr\",\n};\n\nconst file: IProperty = {\n field_type: \"file\",\n label: \"label\",\n placeholder: \"Upload File or Media\",\n is_required: false,\n is_unique: false,\n max_size: 20,\n default_value: \"\",\n};\n\nconst image: IProperty = {\n field_type: \"image\",\n label: \"label\",\n placeholder: \"Upload Image\",\n is_required: false,\n is_unique: false,\n max_size: 20,\n default_value: \"\",\n};\n\nconst geoLocation: IProperty = {\n field_type: \"geoLocation\",\n label: \"label\",\n placeholder: \"Enter geo location\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst section: ISectionProperty = {\n field_type: \"section\",\n label: \"section\",\n section_type: \"Default\",\n form_switcher_label: \"Form section\",\n form_switcher_name: \"\",\n switcher_forms: [{\n value: \"\",\n name: \"Form 1\",\n id: null,\n }],\n is_accordion: false,\n members: [],\n};\n\nconst info: IProperty = {\n field_type: \"info\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n default_value: \"\",\n};\n\nconst relation: IProperty = {\n field_type: \"relation\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n is_unique: false,\n module: \"\",\n field: \"\",\n default_value: \"\",\n};\n\nconst checkbox: IProperty = {\n field_type: \"checkbox\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n is_checked: false,\n title_position:'end',\n title:\"Checkbox\"\n};\n\nconst toggleButton: IProperty = {\n field_type: \"toggleButton\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n is_checked: false,\n title_position:'end',\n title:\"Toggle\"\n};\n\nconst table: IProperty = {\n field_type: \"table\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n table_columns: [],\n table: \"custom\",\n};\nconst radioButton: IMultiOptionsProperty = {\n field_type: \"radioButton\",\n placeholder: \"\",\n label: \"label\",\n title: \"\",\n is_required: false,\n title_position:'end',\n options: [],\n display: \"row\",\n default_value: \"\",\n};\nconst tagsInput: IProperty = {\n field_type: \"tagsInput\",\n label: \"label\",\n placeholder: \"Enter tagsInput\",\n default_value: \"\",\n min_length: 2,\n max_length: 30,\n is_multiline: false,\n is_required: true,\n is_unique: false,\n};\n\nexport const element = {\n text,\n number,\n email,\n phone,\n select,\n date,\n time,\n url,\n currency,\n file,\n geoLocation,\n image,\n section,\n info,\n relation,\n checkbox,\n toggleButton,\n radioButton,\n table,\n tagsInput\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/views/form-builder/field_properties.ts"],"sourcesContent":["import { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\r\n\r\nexport interface IProperty {\r\n field_type: string;\r\n label: string;\r\n placeholder: string;\r\n default_value?: string;\r\n float_step?: string;\r\n min_length?: number;\r\n max_length?: number;\r\n is_multiline?: boolean;\r\n is_required?: boolean;\r\n is_negative?: boolean;\r\n is_unique?: boolean;\r\n is_checked?: boolean;\r\n // options?: Array<{ text: string; value: string }>;\r\n // is_multiselect?: boolean,\r\n id?: string;\r\n is_future_dates_allowed?: boolean;\r\n is_past_dates_allowed?: boolean;\r\n option?: string;\r\n max_size?: number;\r\n section_id?: string;\r\n section_name?: string;\r\n title_position?: \"start\" | \"end\"\r\n title?:string,\r\n table_columns?:MRT_ColumnDef<MRT_RowData>[]\r\n table?:string\r\n module?:string\r\n field?:string\r\n is_country_code_separate?: boolean;\r\n country_code_field_name?: string;\r\n}\r\n\r\ninterface IMultiOption {\r\n value: string;\r\n label: string;\r\n is_checked: boolean;\r\n}\r\n\r\nexport interface IMultiOptionsProperty extends IProperty {\r\n options: IMultiOption[];\r\n display?: \"row\" | \"column\";\r\n}\r\n\r\nexport interface ISelectProperty {\r\n field_type: string;\r\n label: string;\r\n placeholder: string;\r\n default_value: string;\r\n is_required?: boolean;\r\n is_unique?: boolean;\r\n options: ISelectOption[];\r\n is_multiselect?: boolean;\r\n id?: string;\r\n section_id?: string;\r\n section_name?: string;\r\n}\r\n\r\nexport interface ISwitcherForms {\r\n value?: string;\r\n name: string;\r\n id: string | number | null;\r\n}\r\n\r\nexport interface ISectionProperty {\r\n field_type: string;\r\n label: string;\r\n is_accordion: boolean;\r\n id?: string;\r\n section_order?: string;\r\n section_id?: string;\r\n section_name?: string;\r\n section_type: \"Default\" | \"Form switcher section\";\r\n form_switcher_label?: string;\r\n form_switcher_name?: string;\r\n switcher_forms?: ISwitcherForms[];\r\n members: IProperty[] | ISelectProperty[];\r\n}\r\n\r\n\r\ninterface ISelectOption {\r\n text: string;\r\n value: string;\r\n}\r\n\r\nconst text: IProperty = {\r\n field_type: \"text\",\r\n label: \"label\",\r\n placeholder: \"Enter text\",\r\n default_value: \"\",\r\n min_length: 2,\r\n max_length: 30,\r\n is_multiline: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nconst number: IProperty = {\r\n field_type: \"number\",\r\n label: \"label\",\r\n placeholder: \"Enter number\",\r\n default_value: \"\",\r\n float_step: \"0.001\", // \"0.001\",\r\n min_length: 0,\r\n max_length: 1000,\r\n is_negative: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nconst email: IProperty = {\r\n field_type: \"email\",\r\n label: \"label\",\r\n placeholder: \"Enter email\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst phone: IProperty = {\r\n field_type: \"phone\",\r\n label: \"label\",\r\n placeholder: \"Enter phone\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst select: ISelectProperty = {\r\n field_type: \"select\",\r\n label: \"Select\",\r\n placeholder: \"Choose option\",\r\n default_value: \"\",\r\n options: [],\r\n is_multiselect: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nconst date: IProperty = {\r\n field_type: \"date\",\r\n label: \"label\",\r\n placeholder: \"Select Date\",\r\n default_value: \"\",\r\n is_future_dates_allowed: false,\r\n is_past_dates_allowed: false,\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst time: IProperty = {\r\n field_type: \"time\",\r\n label: \"label\",\r\n placeholder: \"Select Time\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n option: \"12hr\",\r\n};\r\n\r\nconst url: IProperty = {\r\n field_type: \"url\",\r\n label: \"label\",\r\n placeholder: \"Enter URL\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst currency: IProperty = {\r\n field_type: \"currency\",\r\n label: \"label\",\r\n placeholder: \"Enter Currency\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n option: \"inr\",\r\n};\r\n\r\nconst file: IProperty = {\r\n field_type: \"file\",\r\n label: \"label\",\r\n placeholder: \"Upload File or Media\",\r\n is_required: false,\r\n is_unique: false,\r\n max_size: 20,\r\n default_value: \"\",\r\n};\r\n\r\nconst image: IProperty = {\r\n field_type: \"image\",\r\n label: \"label\",\r\n placeholder: \"Upload Image\",\r\n is_required: false,\r\n is_unique: false,\r\n max_size: 20,\r\n default_value: \"\",\r\n};\r\n\r\nconst geoLocation: IProperty = {\r\n field_type: \"geoLocation\",\r\n label: \"label\",\r\n placeholder: \"Enter geo location\",\r\n default_value: \"\",\r\n is_required: false,\r\n is_unique: false,\r\n};\r\n\r\nconst section: ISectionProperty = {\r\n field_type: \"section\",\r\n label: \"section\",\r\n section_type: \"Default\",\r\n form_switcher_label: \"Form section\",\r\n form_switcher_name: \"\",\r\n switcher_forms: [{\r\n value: \"\",\r\n name: \"Form 1\",\r\n id: null,\r\n }],\r\n is_accordion: false,\r\n members: [],\r\n};\r\n\r\nconst info: IProperty = {\r\n field_type: \"info\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n default_value: \"\",\r\n};\r\n\r\nconst relation: IProperty = {\r\n field_type: \"relation\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n is_unique: false,\r\n module: \"\",\r\n field: \"\",\r\n default_value: \"\",\r\n};\r\n\r\nconst checkbox: IProperty = {\r\n field_type: \"checkbox\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n is_checked: false,\r\n title_position:'end',\r\n title:\"Checkbox\"\r\n};\r\n\r\nconst toggleButton: IProperty = {\r\n field_type: \"toggleButton\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n is_checked: false,\r\n title_position:'end',\r\n title:\"Toggle\"\r\n};\r\n\r\nconst table: IProperty = {\r\n field_type: \"table\",\r\n label: \"label\",\r\n placeholder: \"Add Label Text\",\r\n is_required: false,\r\n table_columns: [],\r\n table: \"custom\",\r\n};\r\nconst radioButton: IMultiOptionsProperty = {\r\n field_type: \"radioButton\",\r\n placeholder: \"\",\r\n label: \"label\",\r\n title: \"\",\r\n is_required: false,\r\n title_position:'end',\r\n options: [],\r\n display: \"row\",\r\n default_value: \"\",\r\n};\r\nconst tagsInput: IProperty = {\r\n field_type: \"tagsInput\",\r\n label: \"label\",\r\n placeholder: \"Enter tagsInput\",\r\n default_value: \"\",\r\n min_length: 2,\r\n max_length: 30,\r\n is_multiline: false,\r\n is_required: true,\r\n is_unique: false,\r\n};\r\n\r\nexport const element = {\r\n text,\r\n number,\r\n email,\r\n phone,\r\n select,\r\n date,\r\n time,\r\n url,\r\n currency,\r\n file,\r\n geoLocation,\r\n image,\r\n section,\r\n info,\r\n relation,\r\n checkbox,\r\n toggleButton,\r\n radioButton,\r\n table,\r\n tagsInput\r\n};\r\n"],"names":["text","field_type","label","placeholder","default_value","min_length","max_length","is_multiline","is_required","is_unique","number","float_step","is_negative","email","phone","select","options","is_multiselect","date","is_future_dates_allowed","is_past_dates_allowed","time","option","url","currency","file","max_size","geoLocation","image","section","section_type","form_switcher_label","form_switcher_name","switcher_forms","value","name","id","is_accordion","members","info","relation","module","field","checkbox","is_checked","title_position","title","toggleButton","radioButton","display","table","table_columns","tagsInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/views/form-builder/field_properties.ts"],"sourcesContent":["import { MRT_ColumnDef, MRT_RowData } from \"material-react-table\";\n\nexport interface IProperty {\n field_type: string;\n label: string;\n placeholder: string;\n default_value?: string;\n float_step?: string;\n min_length?: number;\n max_length?: number;\n is_multiline?: boolean;\n is_required?: boolean;\n is_negative?: boolean;\n is_unique?: boolean;\n is_checked?: boolean;\n // options?: Array<{ text: string; value: string }>;\n // is_multiselect?: boolean,\n id?: string;\n is_future_dates_allowed?: boolean;\n is_past_dates_allowed?: boolean;\n option?: string;\n max_size?: number;\n section_id?: string;\n section_name?: string;\n title_position?: \"start\" | \"end\"\n title?:string,\n table_columns?:MRT_ColumnDef<MRT_RowData>[]\n table?:string\n module?:string\n field?:string\n is_country_code_separate?: boolean;\n country_code_field_name?: string;\n}\n\ninterface IMultiOption {\n value: string;\n label: string;\n is_checked: boolean;\n}\n\nexport interface IMultiOptionsProperty extends IProperty {\n options: IMultiOption[];\n display?: \"row\" | \"column\";\n}\n\nexport interface ISelectProperty {\n field_type: string;\n label: string;\n placeholder: string;\n default_value: string;\n is_required?: boolean;\n is_unique?: boolean;\n options: ISelectOption[];\n is_multiselect?: boolean;\n id?: string;\n section_id?: string;\n section_name?: string;\n}\n\nexport interface ISwitcherForms {\n value?: string;\n name: string;\n id: string | number | null;\n}\n\nexport interface ISectionProperty {\n field_type: string;\n label: string;\n is_accordion: boolean;\n id?: string;\n section_order?: string;\n section_id?: string;\n section_name?: string;\n section_type: \"Default\" | \"Form switcher section\";\n form_switcher_label?: string;\n form_switcher_name?: string;\n switcher_forms?: ISwitcherForms[];\n members: IProperty[] | ISelectProperty[];\n}\n\n\ninterface ISelectOption {\n text: string;\n value: string;\n}\n\nconst text: IProperty = {\n field_type: \"text\",\n label: \"label\",\n placeholder: \"Enter text\",\n default_value: \"\",\n min_length: 2,\n max_length: 30,\n is_multiline: false,\n is_required: true,\n is_unique: false,\n};\n\nconst number: IProperty = {\n field_type: \"number\",\n label: \"label\",\n placeholder: \"Enter number\",\n default_value: \"\",\n float_step: \"0.001\", // \"0.001\",\n min_length: 0,\n max_length: 1000,\n is_negative: false,\n is_required: true,\n is_unique: false,\n};\n\nconst email: IProperty = {\n field_type: \"email\",\n label: \"label\",\n placeholder: \"Enter email\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst phone: IProperty = {\n field_type: \"phone\",\n label: \"label\",\n placeholder: \"Enter phone\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst select: ISelectProperty = {\n field_type: \"select\",\n label: \"Select\",\n placeholder: \"Choose option\",\n default_value: \"\",\n options: [],\n is_multiselect: false,\n is_required: true,\n is_unique: false,\n};\n\nconst date: IProperty = {\n field_type: \"date\",\n label: \"label\",\n placeholder: \"Select Date\",\n default_value: \"\",\n is_future_dates_allowed: false,\n is_past_dates_allowed: false,\n is_required: false,\n is_unique: false,\n};\n\nconst time: IProperty = {\n field_type: \"time\",\n label: \"label\",\n placeholder: \"Select Time\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n option: \"12hr\",\n};\n\nconst url: IProperty = {\n field_type: \"url\",\n label: \"label\",\n placeholder: \"Enter URL\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst currency: IProperty = {\n field_type: \"currency\",\n label: \"label\",\n placeholder: \"Enter Currency\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n option: \"inr\",\n};\n\nconst file: IProperty = {\n field_type: \"file\",\n label: \"label\",\n placeholder: \"Upload File or Media\",\n is_required: false,\n is_unique: false,\n max_size: 20,\n default_value: \"\",\n};\n\nconst image: IProperty = {\n field_type: \"image\",\n label: \"label\",\n placeholder: \"Upload Image\",\n is_required: false,\n is_unique: false,\n max_size: 20,\n default_value: \"\",\n};\n\nconst geoLocation: IProperty = {\n field_type: \"geoLocation\",\n label: \"label\",\n placeholder: \"Enter geo location\",\n default_value: \"\",\n is_required: false,\n is_unique: false,\n};\n\nconst section: ISectionProperty = {\n field_type: \"section\",\n label: \"section\",\n section_type: \"Default\",\n form_switcher_label: \"Form section\",\n form_switcher_name: \"\",\n switcher_forms: [{\n value: \"\",\n name: \"Form 1\",\n id: null,\n }],\n is_accordion: false,\n members: [],\n};\n\nconst info: IProperty = {\n field_type: \"info\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n default_value: \"\",\n};\n\nconst relation: IProperty = {\n field_type: \"relation\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n is_unique: false,\n module: \"\",\n field: \"\",\n default_value: \"\",\n};\n\nconst checkbox: IProperty = {\n field_type: \"checkbox\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n is_checked: false,\n title_position:'end',\n title:\"Checkbox\"\n};\n\nconst toggleButton: IProperty = {\n field_type: \"toggleButton\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n is_checked: false,\n title_position:'end',\n title:\"Toggle\"\n};\n\nconst table: IProperty = {\n field_type: \"table\",\n label: \"label\",\n placeholder: \"Add Label Text\",\n is_required: false,\n table_columns: [],\n table: \"custom\",\n};\nconst radioButton: IMultiOptionsProperty = {\n field_type: \"radioButton\",\n placeholder: \"\",\n label: \"label\",\n title: \"\",\n is_required: false,\n title_position:'end',\n options: [],\n display: \"row\",\n default_value: \"\",\n};\nconst tagsInput: IProperty = {\n field_type: \"tagsInput\",\n label: \"label\",\n placeholder: \"Enter tagsInput\",\n default_value: \"\",\n min_length: 2,\n max_length: 30,\n is_multiline: false,\n is_required: true,\n is_unique: false,\n};\n\nexport const element = {\n text,\n number,\n email,\n phone,\n select,\n date,\n time,\n url,\n currency,\n file,\n geoLocation,\n image,\n section,\n info,\n relation,\n checkbox,\n toggleButton,\n radioButton,\n table,\n tagsInput\n};\n"],"names":["text","field_type","label","placeholder","default_value","min_length","max_length","is_multiline","is_required","is_unique","number","float_step","is_negative","email","phone","select","options","is_multiselect","date","is_future_dates_allowed","is_past_dates_allowed","time","option","url","currency","file","max_size","geoLocation","image","section","section_type","form_switcher_label","form_switcher_name","switcher_forms","value","name","id","is_accordion","members","info","relation","module","field","checkbox","is_checked","title_position","title","toggleButton","radioButton","display","table","table_columns","tagsInput"],"mappings":"oFAqSuB,CACrBA,KAhNsB,CACtBC,WAAY,OACZC,MAAO,QACPC,YAAa,aACbC,cAAe,GACfC,WAAY,EACZC,WAAY,GACZC,cAAc,EACdC,aAAa,EACbC,WAAW,GAwMXC,OArMwB,CACxBT,WAAY,SACZC,MAAO,QACPC,YAAa,eACbC,cAAe,GACfO,WAAY,QACZN,WAAY,EACZC,WAAY,IACZM,aAAa,EACbJ,aAAa,EACbC,WAAW,GA4LXI,MAzLuB,CACvBZ,WAAY,QACZC,MAAO,QACPC,YAAa,cACbC,cAAe,GACfI,aAAa,EACbC,WAAW,GAoLXK,MAjLuB,CACvBb,WAAY,QACZC,MAAO,QACPC,YAAa,cACbC,cAAe,GACfI,aAAa,EACbC,WAAW,GA4KXM,OAzK8B,CAC9Bd,WAAY,SACZC,MAAO,SACPC,YAAa,gBACbC,cAAe,GACfY,QAAS,GACTC,gBAAgB,EAChBT,aAAa,EACbC,WAAW,GAkKXS,KA/JsB,CACtBjB,WAAY,OACZC,MAAO,QACPC,YAAa,cACbC,cAAe,GACfe,yBAAyB,EACzBC,uBAAuB,EACvBZ,aAAa,EACbC,WAAW,GAwJXY,KArJsB,CACtBpB,WAAY,OACZC,MAAO,QACPC,YAAa,cACbC,cAAe,GACfI,aAAa,EACbC,WAAW,EACXa,OAAQ,QA+IRC,IA5IqB,CACrBtB,WAAY,MACZC,MAAO,QACPC,YAAa,YACbC,cAAe,GACfI,aAAa,EACbC,WAAW,GAuIXe,SApI0B,CAC1BvB,WAAY,WACZC,MAAO,QACPC,YAAa,iBACbC,cAAe,GACfI,aAAa,EACbC,WAAW,EACXa,OAAQ,OA8HRG,KA3HsB,CACtBxB,WAAY,OACZC,MAAO,QACPC,YAAa,uBACbK,aAAa,EACbC,WAAW,EACXiB,SAAU,GACVtB,cAAe,IAqHfuB,YAxG6B,CAC7B1B,WAAY,cACZC,MAAO,QACPC,YAAa,qBACbC,cAAe,GACfI,aAAa,EACbC,WAAW,GAmGXmB,MAnHuB,CACvB3B,WAAY,QACZC,MAAO,QACPC,YAAa,eACbK,aAAa,EACbC,WAAW,EACXiB,SAAU,GACVtB,cAAe,IA6GfyB,QAjGgC,CAChC5B,WAAY,UACZC,MAAO,UACP4B,aAAc,UACdC,oBAAqB,eACrBC,mBAAoB,GACpBC,eAAgB,CAAC,CACfC,MAAO,GACPC,KAAM,SACNC,GAAI,OAENC,cAAc,EACdC,QAAS,IAsFTC,KAnFsB,CACtBtC,WAAY,OACZC,MAAO,QACPC,YAAa,iBACbC,cAAe,IAgFfoC,SA7E0B,CAC1BvC,WAAY,WACZC,MAAO,QACPC,YAAa,iBACbK,aAAa,EACbC,WAAW,EACXgC,OAAQ,GACRC,MAAO,GACPtC,cAAe,IAsEfuC,SAnE0B,CAC1B1C,WAAY,WACZC,MAAO,QACPC,YAAa,iBACbK,aAAa,EACboC,YAAY,EACZC,eAAe,MACfC,MAAM,YA6DNC,aA1D8B,CAC9B9C,WAAY,eACZC,MAAO,QACPC,YAAa,iBACbK,aAAa,EACboC,YAAY,EACZC,eAAe,MACfC,MAAM,UAoDNE,YAzCyC,CACzC/C,WAAY,cACZE,YAAa,GACbD,MAAO,QACP4C,MAAO,GACPtC,aAAa,EACbqC,eAAe,MACf7B,QAAS,GACTiC,QAAS,MACT7C,cAAe,IAiCf8C,MAlDuB,CACvBjD,WAAY,QACZC,MAAO,QACPC,YAAa,iBACbK,aAAa,EACb2C,cAAe,GACfD,MAAO,UA6CPE,UAhC2B,CAC3BnD,WAAY,YACZC,MAAO,QACPC,YAAa,kBACbC,cAAe,GACfC,WAAY,EACZC,WAAY,GACZC,cAAc,EACdC,aAAa,EACbC,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/form-builder/form-fields.tsx"],"sourcesContent":["// React imports\r\nimport React, { memo, useMemo, useCallback } from 'react';\r\n\r\n// Material UI imports\r\nimport { Grid } from '@mui/material';\r\n\r\n// ERP Common imports - Form builder elements\r\nimport DynamicInput from '@/components/form-control/form-builder/form-builder-element/text';\r\nimport DynamicCheckBox from '@/components/form-control/form-builder/form-builder-element/checkbox';\r\nimport DynamicTable from '@/components/form-control/form-builder/form-builder-element/table';\r\nimport DynamicElementHOC from '@/components/form-control/form-builder/form-builder-element/dynamic-element-hoc';\r\nimport DynamicRadioButton from '@/components/form-control/form-builder/form-builder-element/radio-button';\r\nimport DynamicToggleButton from '@/components/form-control/form-builder/form-builder-element/toggle-button';\r\nimport DynamicInfo from '@/components/form-control/form-builder/form-builder-element/info';\r\nimport DynamicMedia from '@/components/form-control/form-builder/form-builder-element/media';\r\nimport DynamicTime from '@/components/form-control/form-builder/form-builder-element/time';\r\nimport DynamicDate from '@/components/form-control/form-builder/form-builder-element/date';\r\nimport DynamicSelect from '@/components/form-control/form-builder/form-builder-element/select';\r\nimport DynamicPhone from '@/components/form-control/form-builder/form-builder-element/phone';\r\n\r\n// Types\r\ninterface IField {\r\n id: string;\r\n field_type: string;\r\n placeholder?: string;\r\n label: string;\r\n default_value?: any;\r\n is_multiline?: boolean;\r\n is_required?: boolean;\r\n min_length?: number;\r\n max_length?: number;\r\n is_fullwidth?: boolean;\r\n custom_width?: number;\r\n options?: any[];\r\n is_multiselect?: boolean;\r\n is_future_dates_allowed?: boolean;\r\n is_past_dates_allowed?: boolean;\r\n option?: any;\r\n max_size?: number;\r\n title?: string;\r\n display?: string;\r\n title_position?: string;\r\n table_columns?: any[];\r\n float_step?: number;\r\n type: string;\r\n}\r\n\r\ninterface FormFieldsProps {\r\n sectionMembers: IField[];\r\n // Add other required props with proper types\r\n members: IField[];\r\n activeMember?: number;\r\n control: any;\r\n t: (key: string) => string;\r\n element: any;\r\n images: any;\r\n elementJSON?: any;\r\n remove: (index: number) => void;\r\n move: (from: number, to: number) => void;\r\n handleElementSelection: (e: any) => void;\r\n setElementSwap: (value: boolean) => void;\r\n handleDuplicateElement: (index: number) => void;\r\n setSelectedHoc: (value: string) => void;\r\n setActiveMember: (value: number | undefined) => void;\r\n}\r\n\r\n// Field type mapping for better maintainability\r\nconst FIELD_TYPE_MAP = {\r\n TEXT: 'text',\r\n EMAIL: 'email',\r\n NUMBER: 'number',\r\n PHONE: 'phone',\r\n SELECT: 'select',\r\n DATE: 'date',\r\n TIME: 'time',\r\n URL: 'url',\r\n CURRENCY: 'currency',\r\n FILE: 'file',\r\n IMAGE: 'image',\r\n GEO_LOCATION: 'geoLocation',\r\n RELATION: 'relation',\r\n INFO: 'info',\r\n TOGGLE_BUTTON: 'toggleButton',\r\n RADIO_BUTTON: 'radioButton',\r\n TAGS_INPUT: 'tagsInput',\r\n CHECKBOX: 'checkbox',\r\n TABLE: 'table'\r\n} as const;\r\n\r\n// Memoized individual field component\r\nconst FormField = memo<{\r\n field: IField;\r\n index: number;\r\n gridItemSize: number;\r\n activeMember?: number;\r\n control: any;\r\n t: (key: string) => string;\r\n element: any;\r\n images: any;\r\n elementJSON?: any;\r\n remove: (index: number) => void;\r\n move: (from: number, to: number) => void;\r\n handleElementSelection: (e: any) => void;\r\n setElementSwap: (value: boolean) => void;\r\n handleDuplicateElement: (index: number) => void;\r\n setSelectedHoc: (value: string) => void;\r\n setActiveMember: (value: number | undefined) => void;\r\n}>(({\r\n field,\r\n index,\r\n gridItemSize,\r\n activeMember,\r\n control,\r\n t,\r\n element,\r\n images,\r\n elementJSON,\r\n remove,\r\n move,\r\n handleElementSelection,\r\n setElementSwap,\r\n handleDuplicateElement,\r\n setSelectedHoc,\r\n setActiveMember\r\n}) => {\r\n // Common HOC props - memoized to prevent unnecessary re-renders\r\n const hocProps = useMemo(() => ({\r\n activeIndex: activeMember === index,\r\n removeElement: remove,\r\n index,\r\n onClick: handleElementSelection,\r\n swap: move,\r\n elementSwap: () => setElementSwap(true),\r\n handleDuplicate: handleDuplicateElement,\r\n setElementHoc: () => {\r\n setSelectedHoc(\"\");\r\n setActiveMember(undefined);\r\n }\r\n }), [\r\n activeMember, \r\n index, \r\n remove, \r\n handleElementSelection, \r\n move, \r\n setElementSwap, \r\n handleDuplicateElement, \r\n setSelectedHoc, \r\n setActiveMember\r\n ]);\r\n\r\n // Common field props - memoized to prevent unnecessary re-renders\r\n const commonFieldProps = useMemo(() => ({\r\n key: field.id,\r\n position: index,\r\n placeholder: t(field.placeholder || ''),\r\n label: t(field.label),\r\n formControl: control,\r\n name: \"message\",\r\n fieldArrayName: \"members\",\r\n required: field.is_required,\r\n formType: \"builder\" as const,\r\n typeOfField: field.type,\r\n disabled: true\r\n }), [field.id, field.placeholder, field.label, field.is_required, field.type, index, t, control]);\r\n\r\n // Render field based on type\r\n const renderFieldContent = useCallback(() => {\r\n const { field_type } = field;\r\n\r\n switch (field_type) {\r\n case element.text.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n is_multiline={field.is_multiline}\r\n min={field.min_length}\r\n max={field.max_length}\r\n />\r\n );\r\n\r\n case element.email.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n endIcon={<img src={images.sms} alt=\"email\" />}\r\n />\r\n );\r\n\r\n case element.number.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n min={field.min_length}\r\n max={field.max_length}\r\n float_step={field.float_step}\r\n />\r\n );\r\n\r\n case element.phone.field_type:\r\n return (\r\n <DynamicPhone\r\n {...commonFieldProps}\r\n type={field_type}\r\n default_value={field.default_value}\r\n />\r\n );\r\n\r\n case element.select.field_type:\r\n return (\r\n <DynamicSelect\r\n {...commonFieldProps}\r\n options={field.options}\r\n defaultValue={field.default_value}\r\n is_multiselect={field.is_multiselect}\r\n />\r\n );\r\n\r\n case element.date.field_type:\r\n return (\r\n <DynamicDate\r\n {...commonFieldProps}\r\n defaultValue={field.default_value}\r\n is_future_dates_allowed={field.is_future_dates_allowed}\r\n is_past_dates_allowed={field.is_past_dates_allowed}\r\n disable={true}\r\n />\r\n );\r\n\r\n case element.time.field_type:\r\n return (\r\n <DynamicTime\r\n {...commonFieldProps}\r\n option={field.option}\r\n />\r\n );\r\n\r\n case element.url.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n endIcon={<img src={images.url} alt=\"url\" />}\r\n />\r\n );\r\n\r\n case element.currency.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n endIcon={<img src={images.dollar} alt=\"currency\" />}\r\n />\r\n );\r\n\r\n case element.file.field_type:\r\n case element.image.field_type:\r\n return (\r\n <DynamicMedia\r\n {...commonFieldProps}\r\n type={field_type}\r\n max_size={field.max_size}\r\n />\r\n );\r\n\r\n case element.geoLocation.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n endIcon={<img src={images.location} alt=\"location\" />}\r\n />\r\n );\r\n\r\n case element.relation.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n is_multiline={field.is_multiline}\r\n min={field.min_length}\r\n max={field.max_length}\r\n label={\r\n <span\r\n className=\"formSection--Relation\"\r\n data-position={index}\r\n data-name={`members.${index}.message`}\r\n >\r\n {t(field.label)}\r\n <img src={images.relation} alt=\"relation\" />\r\n </span>\r\n }\r\n />\r\n );\r\n\r\n case element.info.field_type:\r\n return (\r\n <DynamicInfo\r\n {...commonFieldProps}\r\n defaultValue={field.default_value}\r\n />\r\n );\r\n\r\n case element.toggleButton.field_type:\r\n return (\r\n <DynamicToggleButton\r\n {...commonFieldProps}\r\n title={t(field.title || '')}\r\n titlePosition={elementJSON?.title_position}\r\n />\r\n );\r\n\r\n case element.radioButton.field_type:\r\n return (\r\n <DynamicRadioButton\r\n {...commonFieldProps}\r\n options={field.options}\r\n display={field.display}\r\n titlePosition={elementJSON?.title_position}\r\n />\r\n );\r\n\r\n case element.tagsInput.field_type:\r\n return (\r\n <DynamicInput\r\n {...commonFieldProps}\r\n type={field_type}\r\n defaultValue={field.default_value}\r\n is_multiline={field.is_multiline}\r\n min={field.min_length}\r\n max={field.max_length}\r\n />\r\n );\r\n\r\n case element.checkbox.field_type:\r\n return (\r\n <DynamicCheckBox\r\n {...commonFieldProps}\r\n title={t(field.title || '')}\r\n titlePosition={field.title_position}\r\n />\r\n );\r\n\r\n case element.table.field_type:\r\n return (\r\n <DynamicTable\r\n {...commonFieldProps}\r\n columns={field.table_columns || elementJSON?.table_columns || []}\r\n />\r\n );\r\n\r\n default:\r\n console.warn(`Unknown field type: ${field_type}`);\r\n return null;\r\n }\r\n }, [field, commonFieldProps, element, images, elementJSON, t, index]);\r\n\r\n return (\r\n <Grid item xs={gridItemSize}>\r\n <DynamicElementHOC\r\n {...hocProps}\r\n element={field.field_type}\r\n >\r\n {renderFieldContent()}\r\n </DynamicElementHOC>\r\n </Grid>\r\n );\r\n});\r\n\r\nFormField.displayName = 'FormField';\r\n\r\n// Main component\r\nconst FormFields: React.FC<FormFieldsProps> = memo(({\r\n sectionMembers,\r\n members,\r\n activeMember,\r\n control,\r\n t,\r\n element,\r\n images,\r\n elementJSON,\r\n remove,\r\n move,\r\n handleElementSelection,\r\n setElementSwap,\r\n handleDuplicateElement,\r\n setSelectedHoc,\r\n setActiveMember\r\n}) => {\r\n // Memoize grid item size calculation\r\n const calculateGridSize = useCallback((field: IField): number => {\r\n if (field.is_fullwidth || field.field_type === \"table\") return 12;\r\n if (field.custom_width) return field.custom_width;\r\n return 6;\r\n }, []);\r\n\r\n // Memoize the rendered fields\r\n const renderedFields = useMemo(() => {\r\n return sectionMembers.map((field: IField) => {\r\n const index = members.findIndex(member => member === field);\r\n const gridItemSize = calculateGridSize(field);\r\n\r\n return (\r\n <FormField\r\n key={`${field.id}-${index}`} // Better key for React reconciliation\r\n field={field}\r\n index={index}\r\n gridItemSize={gridItemSize}\r\n activeMember={activeMember}\r\n control={control}\r\n t={t}\r\n element={element}\r\n images={images}\r\n elementJSON={elementJSON}\r\n remove={remove}\r\n move={move}\r\n handleElementSelection={handleElementSelection}\r\n setElementSwap={setElementSwap}\r\n handleDuplicateElement={handleDuplicateElement}\r\n setSelectedHoc={setSelectedHoc}\r\n setActiveMember={setActiveMember}\r\n />\r\n );\r\n });\r\n }, [\r\n sectionMembers,\r\n members,\r\n activeMember,\r\n control,\r\n t,\r\n element,\r\n images,\r\n elementJSON,\r\n remove,\r\n move,\r\n handleElementSelection,\r\n setElementSwap,\r\n handleDuplicateElement,\r\n setSelectedHoc,\r\n setActiveMember,\r\n calculateGridSize,\r\n elementJSON?.field_type\r\n ]);\r\n\r\n return <>{renderedFields}</>;\r\n});\r\n\r\nFormFields.displayName = 'FormFields';\r\n\r\nexport { FormField };\nexport default FormFields;"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/views/form-builder/form-fields.tsx"],"sourcesContent":["// React imports\nimport React, { memo, useMemo, useCallback } from 'react';\n\n// Material UI imports\nimport { Grid } from '@mui/material';\n\n// ERP Common imports - Form builder elements\nimport DynamicInput from '@/components/form-control/form-builder/form-builder-element/text';\nimport DynamicCheckBox from '@/components/form-control/form-builder/form-builder-element/checkbox';\nimport DynamicTable from '@/components/form-control/form-builder/form-builder-element/table';\nimport DynamicElementHOC from '@/components/form-control/form-builder/form-builder-element/dynamic-element-hoc';\nimport DynamicRadioButton from '@/components/form-control/form-builder/form-builder-element/radio-button';\nimport DynamicToggleButton from '@/components/form-control/form-builder/form-builder-element/toggle-button';\nimport DynamicInfo from '@/components/form-control/form-builder/form-builder-element/info';\nimport DynamicMedia from '@/components/form-control/form-builder/form-builder-element/media';\nimport DynamicTime from '@/components/form-control/form-builder/form-builder-element/time';\nimport DynamicDate from '@/components/form-control/form-builder/form-builder-element/date';\nimport DynamicSelect from '@/components/form-control/form-builder/form-builder-element/select';\nimport DynamicPhone from '@/components/form-control/form-builder/form-builder-element/phone';\n\n// Types\ninterface IField {\n id: string;\n field_type: string;\n placeholder?: string;\n label: string;\n default_value?: any;\n is_multiline?: boolean;\n is_required?: boolean;\n min_length?: number;\n max_length?: number;\n is_fullwidth?: boolean;\n custom_width?: number;\n options?: any[];\n is_multiselect?: boolean;\n is_future_dates_allowed?: boolean;\n is_past_dates_allowed?: boolean;\n option?: any;\n max_size?: number;\n title?: string;\n display?: string;\n title_position?: string;\n table_columns?: any[];\n float_step?: number;\n type: string;\n}\n\ninterface FormFieldsProps {\n sectionMembers: IField[];\n // Add other required props with proper types\n members: IField[];\n activeMember?: number;\n control: any;\n t: (key: string) => string;\n element: any;\n images: any;\n elementJSON?: any;\n remove: (index: number) => void;\n move: (from: number, to: number) => void;\n handleElementSelection: (e: any) => void;\n setElementSwap: (value: boolean) => void;\n handleDuplicateElement: (index: number) => void;\n setSelectedHoc: (value: string) => void;\n setActiveMember: (value: number | undefined) => void;\n}\n\n// Field type mapping for better maintainability\nconst FIELD_TYPE_MAP = {\n TEXT: 'text',\n EMAIL: 'email',\n NUMBER: 'number',\n PHONE: 'phone',\n SELECT: 'select',\n DATE: 'date',\n TIME: 'time',\n URL: 'url',\n CURRENCY: 'currency',\n FILE: 'file',\n IMAGE: 'image',\n GEO_LOCATION: 'geoLocation',\n RELATION: 'relation',\n INFO: 'info',\n TOGGLE_BUTTON: 'toggleButton',\n RADIO_BUTTON: 'radioButton',\n TAGS_INPUT: 'tagsInput',\n CHECKBOX: 'checkbox',\n TABLE: 'table'\n} as const;\n\n// Memoized individual field component\nconst FormField = memo<{\n field: IField;\n index: number;\n gridItemSize: number;\n activeMember?: number;\n control: any;\n t: (key: string) => string;\n element: any;\n images: any;\n elementJSON?: any;\n remove: (index: number) => void;\n move: (from: number, to: number) => void;\n handleElementSelection: (e: any) => void;\n setElementSwap: (value: boolean) => void;\n handleDuplicateElement: (index: number) => void;\n setSelectedHoc: (value: string) => void;\n setActiveMember: (value: number | undefined) => void;\n}>(({\n field,\n index,\n gridItemSize,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember\n}) => {\n // Common HOC props - memoized to prevent unnecessary re-renders\n const hocProps = useMemo(() => ({\n activeIndex: activeMember === index,\n removeElement: remove,\n index,\n onClick: handleElementSelection,\n swap: move,\n elementSwap: () => setElementSwap(true),\n handleDuplicate: handleDuplicateElement,\n setElementHoc: () => {\n setSelectedHoc(\"\");\n setActiveMember(undefined);\n }\n }), [\n activeMember, \n index, \n remove, \n handleElementSelection, \n move, \n setElementSwap, \n handleDuplicateElement, \n setSelectedHoc, \n setActiveMember\n ]);\n\n // Common field props - memoized to prevent unnecessary re-renders\n const commonFieldProps = useMemo(() => ({\n key: field.id,\n position: index,\n placeholder: t(field.placeholder || ''),\n label: t(field.label),\n formControl: control,\n name: \"message\",\n fieldArrayName: \"members\",\n required: field.is_required,\n formType: \"builder\" as const,\n typeOfField: field.type,\n disabled: true\n }), [field.id, field.placeholder, field.label, field.is_required, field.type, index, t, control]);\n\n // Render field based on type\n const renderFieldContent = useCallback(() => {\n const { field_type } = field;\n\n switch (field_type) {\n case element.text.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n />\n );\n\n case element.email.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.sms} alt=\"email\" />}\n />\n );\n\n case element.number.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n min={field.min_length}\n max={field.max_length}\n float_step={field.float_step}\n />\n );\n\n case element.phone.field_type:\n return (\n <DynamicPhone\n {...commonFieldProps}\n type={field_type}\n default_value={field.default_value}\n />\n );\n\n case element.select.field_type:\n return (\n <DynamicSelect\n {...commonFieldProps}\n options={field.options}\n defaultValue={field.default_value}\n is_multiselect={field.is_multiselect}\n />\n );\n\n case element.date.field_type:\n return (\n <DynamicDate\n {...commonFieldProps}\n defaultValue={field.default_value}\n is_future_dates_allowed={field.is_future_dates_allowed}\n is_past_dates_allowed={field.is_past_dates_allowed}\n disable={true}\n />\n );\n\n case element.time.field_type:\n return (\n <DynamicTime\n {...commonFieldProps}\n option={field.option}\n />\n );\n\n case element.url.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.url} alt=\"url\" />}\n />\n );\n\n case element.currency.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.dollar} alt=\"currency\" />}\n />\n );\n\n case element.file.field_type:\n case element.image.field_type:\n return (\n <DynamicMedia\n {...commonFieldProps}\n type={field_type}\n max_size={field.max_size}\n />\n );\n\n case element.geoLocation.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n endIcon={<img src={images.location} alt=\"location\" />}\n />\n );\n\n case element.relation.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n label={\n <span\n className=\"formSection--Relation\"\n data-position={index}\n data-name={`members.${index}.message`}\n >\n {t(field.label)}\n <img src={images.relation} alt=\"relation\" />\n </span>\n }\n />\n );\n\n case element.info.field_type:\n return (\n <DynamicInfo\n {...commonFieldProps}\n defaultValue={field.default_value}\n />\n );\n\n case element.toggleButton.field_type:\n return (\n <DynamicToggleButton\n {...commonFieldProps}\n title={t(field.title || '')}\n titlePosition={elementJSON?.title_position}\n />\n );\n\n case element.radioButton.field_type:\n return (\n <DynamicRadioButton\n {...commonFieldProps}\n options={field.options}\n display={field.display}\n titlePosition={elementJSON?.title_position}\n />\n );\n\n case element.tagsInput.field_type:\n return (\n <DynamicInput\n {...commonFieldProps}\n type={field_type}\n defaultValue={field.default_value}\n is_multiline={field.is_multiline}\n min={field.min_length}\n max={field.max_length}\n />\n );\n\n case element.checkbox.field_type:\n return (\n <DynamicCheckBox\n {...commonFieldProps}\n title={t(field.title || '')}\n titlePosition={field.title_position}\n />\n );\n\n case element.table.field_type:\n return (\n <DynamicTable\n {...commonFieldProps}\n columns={field.table_columns || elementJSON?.table_columns || []}\n />\n );\n\n default:\n console.warn(`Unknown field type: ${field_type}`);\n return null;\n }\n }, [field, commonFieldProps, element, images, elementJSON, t, index]);\n\n return (\n <Grid item xs={gridItemSize}>\n <DynamicElementHOC\n {...hocProps}\n element={field.field_type}\n >\n {renderFieldContent()}\n </DynamicElementHOC>\n </Grid>\n );\n});\n\nFormField.displayName = 'FormField';\n\n// Main component\nconst FormFields: React.FC<FormFieldsProps> = memo(({\n sectionMembers,\n members,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember\n}) => {\n // Memoize grid item size calculation\n const calculateGridSize = useCallback((field: IField): number => {\n if (field.is_fullwidth || field.field_type === \"table\") return 12;\n if (field.custom_width) return field.custom_width;\n return 6;\n }, []);\n\n // Memoize the rendered fields\n const renderedFields = useMemo(() => {\n return sectionMembers.map((field: IField) => {\n const index = members.findIndex(member => member === field);\n const gridItemSize = calculateGridSize(field);\n\n return (\n <FormField\n key={`${field.id}-${index}`} // Better key for React reconciliation\n field={field}\n index={index}\n gridItemSize={gridItemSize}\n activeMember={activeMember}\n control={control}\n t={t}\n element={element}\n images={images}\n elementJSON={elementJSON}\n remove={remove}\n move={move}\n handleElementSelection={handleElementSelection}\n setElementSwap={setElementSwap}\n handleDuplicateElement={handleDuplicateElement}\n setSelectedHoc={setSelectedHoc}\n setActiveMember={setActiveMember}\n />\n );\n });\n }, [\n sectionMembers,\n members,\n activeMember,\n control,\n t,\n element,\n images,\n elementJSON,\n remove,\n move,\n handleElementSelection,\n setElementSwap,\n handleDuplicateElement,\n setSelectedHoc,\n setActiveMember,\n calculateGridSize,\n elementJSON?.field_type\n ]);\n\n return <>{renderedFields}</>;\n});\n\nFormFields.displayName = 'FormFields';\n\nexport { FormField };\nexport default FormFields;"],"names":[],"mappings":";;;;;;;;;;;;;;;AA0FA,MAAM,YAAY,KAiBf,CAAC;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,WAAW,QAAQ,OAAO;AAAA,IAC9B,aAAa,iBAAiB;AAAA,IAC9B,eAAe;AAAA,IACf;AAAA,IACA,SAAS;AAAA,IACT,MAAM;AAAA,IACN,aAAa,MAAM,eAAe,IAAI;AAAA,IACtC,iBAAiB;AAAA,IACjB,eAAe,MAAM;AACnB,qBAAe,EAAE;AACjB,sBAAgB,MAAS;AAAA,IAC3B;AAAA,EAAA,IACE;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAGD,QAAM,mBAAmB,QAAQ,OAAO;AAAA,IACtC,KAAK,MAAM;AAAA,IACX,UAAU;AAAA,IACV,aAAa,EAAE,MAAM,eAAe,EAAE;AAAA,IACtC,OAAO,EAAE,MAAM,KAAK;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,aAAa,MAAM;AAAA,IACnB,UAAU;AAAA,EAAA,IACR,CAAC,MAAM,IAAI,MAAM,aAAa,MAAM,OAAO,MAAM,aAAa,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAGhG,QAAM,qBAAqB,YAAY,MAAM;AAC3C,UAAM,EAAE,eAAe;AAEvB,YAAQ,YAAA;AAAA,MACN,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,KAAK,KAAI,QAAA,CAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjD,KAAK,QAAQ,OAAO;AAClB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,YAAY,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIxB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI3B,KAAK,QAAQ,OAAO;AAClB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM;AAAA,YACf,cAAc,MAAM;AAAA,YACpB,gBAAgB,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI5B,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,cAAc,MAAM;AAAA,YACpB,yBAAyB,MAAM;AAAA,YAC/B,uBAAuB,MAAM;AAAA,YAC7B,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MAIf,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,QAAQ,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIpB,KAAK,QAAQ,IAAI;AACf,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,KAAK,KAAI,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI/C,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,QAAQ,KAAI,WAAA,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAIvD,KAAK,QAAQ,KAAK;AAAA,MAClB,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,UAAU,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAItB,KAAK,QAAQ,YAAY;AACvB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,SAAS,oBAAC,OAAA,EAAI,KAAK,OAAO,UAAU,KAAI,WAAA,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAIzD,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,YACX,OACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,iBAAe;AAAA,gBACf,aAAW,WAAW,KAAK;AAAA,gBAE1B,UAAA;AAAA,kBAAA,EAAE,MAAM,KAAK;AAAA,sCACb,OAAA,EAAI,KAAK,OAAO,UAAU,KAAI,WAAA,CAAW;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5C;AAAA,QAAA;AAAA,MAKR,KAAK,QAAQ,KAAK;AAChB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,cAAc,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI1B,KAAK,QAAQ,aAAa;AACxB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,YAC1B,eAAe,2CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAIlC,KAAK,QAAQ,YAAY;AACvB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM;AAAA,YACf,SAAS,MAAM;AAAA,YACf,eAAe,2CAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MAIlC,KAAK,QAAQ,UAAU;AACrB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,MAAM;AAAA,YACN,cAAc,MAAM;AAAA,YACpB,cAAc,MAAM;AAAA,YACpB,KAAK,MAAM;AAAA,YACX,KAAK,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAIjB,KAAK,QAAQ,SAAS;AACpB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,YAC1B,eAAe,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAI3B,KAAK,QAAQ,MAAM;AACjB,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG;AAAA,YACJ,SAAS,MAAM,kBAAiB,2CAAa,kBAAiB,CAAA;AAAA,UAAC;AAAA,QAAA;AAAA,MAIrE;AACE,gBAAQ,KAAK,uBAAuB,UAAU,EAAE;AAChD,eAAO;AAAA,IAAA;AAAA,EAEb,GAAG,CAAC,OAAO,kBAAkB,SAAS,QAAQ,aAAa,GAAG,KAAK,CAAC;AAEpE,SACE,oBAAC,MAAA,EAAK,MAAI,MAAC,IAAI,cACb,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAS,MAAM;AAAA,MAEd,UAAA,mBAAA;AAAA,IAAmB;AAAA,EAAA,GAExB;AAEJ,CAAC;AAED,UAAU,cAAc;AAGxB,MAAM,aAAwC,KAAK,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAEJ,QAAM,oBAAoB,YAAY,CAAC,UAA0B;AAC/D,QAAI,MAAM,gBAAgB,MAAM,eAAe,QAAS,QAAO;AAC/D,QAAI,MAAM,aAAc,QAAO,MAAM;AACrC,WAAO;AAAA,EACT,GAAG,CAAA,CAAE;AAGL,QAAM,iBAAiB,QAAQ,MAAM;AACnC,WAAO,eAAe,IAAI,CAAC,UAAkB;AAC3C,YAAM,QAAQ,QAAQ,UAAU,CAAA,WAAU,WAAW,KAAK;AAC1D,YAAM,eAAe,kBAAkB,KAAK;AAE5C,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAhBK,GAAG,MAAM,EAAE,IAAI,KAAK;AAAA,MAAA;AAAA,IAmB/B,CAAC;AAAA,EACH,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,2CAAa;AAAA,EAAA,CACd;AAED,yCAAU,UAAA,eAAA,CAAe;AAC3B,CAAC;AAED,WAAW,cAAc;"}
|