@erpsquad/common 1.8.81 → 1.8.83
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.esm2.js +4 -2
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +3 -3
- package/dist/_virtual/index/index.esm4.js +3 -3
- package/dist/_virtual/index/index.esm5.js +2 -4
- package/dist/_virtual/index/index.esm5.js.map +1 -1
- 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/index2.js +1 -1
- package/dist/_virtual/index/index3.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 +15 -1
- package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
- package/dist/components/providers/ERPUIProvider/index.js +1 -1
- package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
- package/dist/components/providers/ERPUIProvider.d.ts +2 -0
- 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/index.esm.js +7 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +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/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +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/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +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/providers/ERPUIProvider.d.ts +2 -0
- 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/api-config.d.ts +48 -0
- package/dist/src/utils/api.d.ts +1 -0
- package/dist/src/utils/common-utility.d.ts +1 -1
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/style.css +67 -67
- 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 +20 -7
- 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/api-config/index.esm.js +36 -0
- package/dist/utils/api-config/index.esm.js.map +1 -0
- package/dist/utils/api-config/index.js +2 -0
- package/dist/utils/api-config/index.js.map +1 -0
- package/dist/utils/api-config.d.ts +48 -0
- package/dist/utils/api.d.ts +1 -0
- package/dist/utils/common/index.esm.js +7 -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/index.esm.js +7 -1
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/utils/index.js +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/components/searchable-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport {\r\n Box,\r\n CircularProgress,\r\n Divider,\r\n IconButton,\r\n InputAdornment,\r\n MenuItem,\r\n OutlinedInput,\r\n} from \"@mui/material\";\r\nimport Select from \"./select/select\";\r\nimport Checkbox from \"./checkbox/checkbox\";\r\nimport Typography from \"./typography/typography\";\r\nimport { Close } from \"./icons\";\r\nimport { debounce, sortBy } from \"lodash\";\r\nimport { fetchApi } from \"../utils/api\";\r\nimport ChipOrPlaceholder from \"./form-control/form-builder/form-builder-element/chip-or-placeholder\";\r\nimport { Add } from \"@mui/icons-material\";\r\nimport { useLanguage } from \"../hooks/useLangauge\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\ninterface IOption {\r\n id: string | number;\r\n value: string | number;\r\n label: string | React.ReactNode;\r\n disabled?: boolean;\r\n isGroup?: boolean;\r\n options?: IOption[];\r\n searchLabel?: string;\r\n}\r\n\r\ninterface IPaginationState {\r\n page: number;\r\n hasMore: boolean;\r\n isLoadingMore: boolean;\r\n total: number;\r\n}\r\n\r\ninterface IMenuItems {\r\n options: IOption[];\r\n multiple: boolean;\r\n placeholder: string;\r\n with_checkboxes: boolean;\r\n values: string | string[];\r\n field: any;\r\n disabledIds: any[];\r\n handleClear: () => void;\r\n handleChange?: (value: string | string[]) => void;\r\n hasParent?: boolean;\r\n}\r\n\r\n// Custom API fetch function type for parent components\r\ninterface CustomFetchApiParams {\r\n search?: string;\r\n filters?: any;\r\n limit: number;\r\n skip: number;\r\n select?: string;\r\n order?: string;\r\n}\r\n\r\ninterface CustomFetchApiResponse {\r\n data: IOption[];\r\n pagination?: {\r\n totalCount: number;\r\n };\r\n}\r\n\r\ninterface SearchableSelectProps {\r\n labelId: string;\r\n label: string;\r\n value: any;\r\n onChange?: (event: any, selectedData?: any) => void;\r\n options: IOption[];\r\n multiple?: boolean;\r\n placeholder?: string;\r\n size?: \"small\" | \"medium\";\r\n searchPlaceholder?: string;\r\n CustomDropDownIcon: React.ReactNode;\r\n customStyle: any;\r\n name?: string;\r\n defaultValue?: any;\r\n apiType?: string;\r\n isInternal?: boolean;\r\n autoFocus?: any;\r\n error?: any;\r\n disabled: any;\r\n customeFilter?: string;\r\n attributes?: string;\r\n getSelectedData?: (row: any) => void;\r\n disabledIds: any[];\r\n labelKey?: string;\r\n valueKey?: string;\r\n inputStyle?: any;\r\n onChipRemove?: (value: string) => void;\r\n selectedLabel?: string;\r\n is_loading?: boolean;\r\n hasParent?: boolean;\r\n sortOrder?: string;\r\n handleChange?: (value: string | string[]) => void;\r\n enable_footer?: boolean;\r\n onFooterClick?: () => void;\r\n showCancelButton?: boolean;\r\n /** Custom API function to fetch options from parent component */\r\n customFetchApi?: (params: CustomFetchApiParams) => Promise<CustomFetchApiResponse>;\r\n}\r\n\r\nconst generateMenuItems = ({\r\n options,\r\n multiple,\r\n placeholder,\r\n with_checkboxes,\r\n values,\r\n field,\r\n disabledIds,\r\n handleClear,\r\n handleChange,\r\n hasParent = false,\r\n}: IMenuItems) => {\r\n const itemDisabled = (ls: any) => disabledIds?.includes(ls);\r\n const items: React.ReactElement[] = [];\r\n\r\n if (!multiple) {\r\n items.push(\r\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\r\n <Typography type='s3' color='theme.secondary.1000'>\r\n <em>{placeholder}</em>\r\n </Typography>\r\n </MenuItem>\r\n );\r\n }\r\n\r\n const selectedValues = Array.isArray(values) ? values?.filter((value) => value) : [];\r\n\r\n // Parent selection handlers\r\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n\r\n const isParentSelected = valueArray.includes(parentValue);\r\n const updatedValues = isParentSelected\r\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\r\n : [...new Set([...valueArray, parentValue, ...childValues])];\r\n\r\n handleChange?.(updatedValues);\r\n };\r\n\r\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.every((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.some((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n Array.isArray(options) && options?.length > 0 && options?.forEach((option, index) => {\r\n items.push(\r\n <MenuItem\r\n value={option?.value}\r\n key={`${option?.value}-${index}`}\r\n disabled={Boolean(option?.disabled) || itemDisabled(option?.value) || (hasParent && !multiple)}\r\n className={option?.isGroup ? 'select--MenuItemHeader' : ''}\r\n onClick={() => {\r\n if (values?.length == 1) {\r\n handleClear();\r\n }\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={\r\n hasParent\r\n ? isAllOptionsSelected(option.value, option.options || [])\r\n : Boolean(Array.isArray(values) && values?.indexOf(option?.value) > -1)\r\n }\r\n indeterminate={\r\n hasParent && isSomeOptionsSelected(option.options || [])\r\n }\r\n onChange={() =>\r\n hasParent\r\n ? handleParentChange(option.value, option.options || [])\r\n : handleChange?.(option.value)\r\n }\r\n />\r\n )}\r\n <Typography\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(option.value)}\r\n >\r\n {option?.label}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n\r\n // Handle child options for grouped items\r\n if (option?.isGroup && Array.isArray(option?.options)) {\r\n option.options.forEach((opt, index) => {\r\n items.push(\r\n <MenuItem\r\n id={`${option.value}-${opt.value} ${index}`}\r\n value={opt.value}\r\n disabled={Boolean(opt.disabled) || itemDisabled(opt.value)}\r\n sx={{ pl: 5 }}\r\n onClick={() => {\r\n if (values?.length == 1) {\r\n handleClear();\r\n }\r\n }}\r\n key={`${option.value}-${opt.value} ${index}`}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={Boolean(Array.isArray(values) && values?.indexOf(opt.value) > -1)}\r\n />\r\n )}\r\n <Typography\r\n id={`${option.value}-${opt.value} ${index}`}\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(String(opt.value))}\r\n >\r\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n });\r\n }\r\n });\r\n\r\n // Footer item\r\n if (field.enable_footer) {\r\n items.push(\r\n <Box key=\"footer\">\r\n <Divider flexItem />\r\n <MenuItem sx={{ gap: 1 }} onClick={field.onFooterClick}>\r\n <Add fontSize='small' />\r\n <Typography type='s4' color='theme.secondary.1000'>\r\n Create New {field.label}\r\n </Typography>\r\n </MenuItem>\r\n </Box>\r\n );\r\n }\r\n\r\n // No data fallback\r\n if (!items.length || (items.length == 1 && !multiple)) {\r\n items.push(\r\n <MenuItem disabled key=\"no-data\">\r\n No data available\r\n </MenuItem>\r\n );\r\n }\r\n\r\n return items;\r\n};\r\n\r\nconst SearchableSelect: React.FC<SearchableSelectProps> = (props) => {\r\n const {\r\n labelId,\r\n label,\r\n value,\r\n onChange,\r\n options,\r\n multiple = false,\r\n size = \"small\",\r\n searchPlaceholder,\r\n placeholder,\r\n name,\r\n defaultValue,\r\n apiType,\r\n isInternal = false,\r\n autoFocus,\r\n error,\r\n disabled,\r\n customeFilter,\r\n attributes,\r\n getSelectedData,\r\n disabledIds,\r\n onChipRemove,\r\n selectedLabel,\r\n is_loading,\r\n customStyle = {},\r\n CustomDropDownIcon,\r\n labelKey,\r\n valueKey,\r\n inputStyle,\r\n hasParent = false,\r\n sortOrder = 'id:-1',\r\n handleChange,\r\n enable_footer = false,\r\n onFooterClick,\r\n showCancelButton = true,\r\n customFetchApi\r\n } = props;\r\n\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [loading, setLoading] = useState<boolean>(false);\r\n const [dynamicOptions, setOptions] = useState<IOption[]>([]);\r\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\r\n const [isAlredyLoaded, setIsAlredyLoaded] = useState(false);\r\n const [initailLoading, setInitialLoading] = useState(false);\r\n const [searchInitiate, setSearchInitiate] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n const [prevFilter, setPrevFilter] = useState<any>(null);\r\n const { t } = useTranslation();\r\n\r\n // Pagination state\r\n const [pagination, setPagination] = useState<IPaginationState>({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n\r\n const { isRtl } = useLanguage();\r\n const limit = 25;\r\n\r\n const isInternalOptions = useMemo(() => {\r\n return isInternal || (!apiType && !customFetchApi);\r\n }, [isInternal, apiType, customFetchApi]);\r\n\r\n // Local search function for internal options\r\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\r\n if (!searchTerm) return options || [];\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n\r\n const filteredOptions = hasParent\r\n ? options?.reduce((acc: IOption[], opt) => {\r\n const searchedOptions = opt.options?.filter((item) => {\r\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n });\r\n\r\n if (searchedOptions?.length) {\r\n acc.push({ ...opt, options: searchedOptions });\r\n }\r\n\r\n return acc;\r\n }, []) || []\r\n : options?.filter((opt) => {\r\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n }) || [];\r\n\r\n return sortBySelectedValues(filteredOptions, value);\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [options, hasParent]);\r\n\r\n // Clear Selected Options\r\n const handleClear = () => {\r\n onChange?.({ target: { value: multiple ? [] : null } });\r\n if (getSelectedData && typeof getSelectedData === \"function\") {\r\n getSelectedData(null);\r\n }\r\n };\r\n\r\n // Get unique options\r\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\r\n const uniqueOptions = [\r\n ...new Map(data?.map(item => [item.value, item])).values()\r\n ];\r\n return uniqueOptions;\r\n }, []);\r\n\r\n // Sort by selected values\r\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\r\n const selectedValues = Array.isArray(value) ? value : [value];\r\n const sortedValue = sortBy(arrayToSort, (item) => {\r\n const index = selectedValues.indexOf(item.id || item.value);\r\n return index === -1 ? Infinity : index;\r\n });\r\n return sortedValue;\r\n }, []);\r\n\r\n // Options with search and pagination support\r\n const filteredOptions = useMemo(() => {\r\n if (isInternalOptions) {\r\n return searchOptionsLocally(searchQuery, value);\r\n }\r\n return sortBySelectedValues(getUniqueOptions([...dynamicOptions, ...selectedOptions]), value);\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchQuery, dynamicOptions, options, value, isInternalOptions, selectedOptions, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\r\n\r\n // Handle scroll pagination\r\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\r\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\r\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\r\n\r\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\r\n const nextPage = pagination.page + 1;\r\n fetchOptions(searchQuery, customeFilter, nextPage, true);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, JSON.stringify(customeFilter)]);\r\n\r\n // Update Options\r\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\r\n const oldOptions = append ? dynamicOptions : selectedOptions;\r\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\r\n setOptions(uniqueOptions);\r\n }, [dynamicOptions, selectedOptions, getUniqueOptions]);\r\n\r\n // Fetch Options with pagination support\r\n const fetchOptions = useCallback(async (searchTerm: any = '', filters = customeFilter, page = 1, append = false) => {\r\n // Skip if neither apiType nor customFetchApi is provided\r\n if (!apiType && !customFetchApi) return [];\r\n\r\n setLoading(true);\r\n if (page > 1) {\r\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\r\n }\r\n\r\n try {\r\n let data: IOption[] = [];\r\n let paginationResult: { totalCount?: number } = {};\r\n\r\n // Use custom API if provided, otherwise use default fetchApi\r\n if (customFetchApi) {\r\n const response = await customFetchApi({\r\n search: searchTerm,\r\n filters,\r\n limit,\r\n skip: (page - 1) * limit,\r\n select: attributes,\r\n order: sortOrder\r\n });\r\n data = response?.data || [];\r\n paginationResult = response?.pagination || {};\r\n } else {\r\n const response = await fetchApi({\r\n apiKey: apiType!,\r\n filters: {\r\n limit,\r\n skip: (page - 1) * limit,\r\n search: searchTerm,\r\n filters,\r\n select: attributes,\r\n order: sortOrder\r\n },\r\n labelKey,\r\n valueKey\r\n });\r\n data = response?.data || [];\r\n paginationResult = response?.pagination || {};\r\n }\r\n\r\n if (data && Array.isArray(data)) {\r\n updateOptions(data, append);\r\n\r\n // Update pagination\r\n setPagination(prev => ({\r\n ...prev,\r\n page,\r\n hasMore: (paginationResult?.totalCount || 0) > (page * limit),\r\n total: paginationResult?.totalCount || 0,\r\n isLoadingMore: false\r\n }));\r\n\r\n if (data?.length > 0) {\r\n setSelectedData();\r\n }\r\n }\r\n\r\n return data || [];\r\n } catch (error) {\r\n console.error('Error fetching options:', error);\r\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\r\n return [];\r\n } finally {\r\n setLoading(false);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [apiType, customFetchApi, attributes, sortOrder, limit, updateOptions]);\r\n\r\n // Search Options with debounce\r\n const debounceSearch = useMemo(\r\n () => debounce(async (searchTerm: string) => {\r\n if (loading) return;\r\n\r\n if (!searchTerm && !isInternalOptions && searchInitiate) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions('', customeFilter, 1, false);\r\n }\r\n if (searchTerm?.length > 1 && !isInternalOptions) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions(searchTerm, customeFilter, 1, false);\r\n }\r\n }, 700),\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n [isInternalOptions, searchInitiate, JSON.stringify(customeFilter)]\r\n );\r\n\r\n // Initial fetch with filter change detection\r\n const initialFetch = useCallback(async () => {\r\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\r\n\r\n if (condition && !isInternalOptions && !isAlredyLoaded) {\r\n setPrevFilter(customeFilter);\r\n setOptions([]);\r\n setIsAlredyLoaded(false);\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n }\r\n\r\n if (!isInternalOptions && !isAlredyLoaded) {\r\n await fetchOptions(searchQuery, customeFilter, 1, false);\r\n setIsAlredyLoaded(true);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [JSON.stringify(customeFilter), isInternalOptions, isAlredyLoaded]);\r\n\r\n // Set Selected Data\r\n const setSelectedData = useCallback(() => {\r\n let hasOptions = false;\r\n const isInOptions = filteredOptions?.filter((i: any) =>\r\n multiple ? value?.includes(i?.value) : i?.value == value\r\n );\r\n\r\n if ((Array.isArray(isInOptions) && isInOptions?.length > 0)) {\r\n getSelectedData?.(multiple ? isInOptions : isInOptions[0]);\r\n hasOptions = true;\r\n }\r\n\r\n return hasOptions;\r\n }, [JSON.stringify(filteredOptions), value, multiple]);\r\n\r\n // Fetch Options for Selected Id\r\n const fetchIdOptions = useCallback(async () => {\r\n if (await setSelectedData()) return;\r\n if (open) return;\r\n\r\n const fValue = multiple ? value && value?.filter(v => Boolean(Number(v))) : value ? value : null;\r\n const condition = (multiple ? fValue?.length > 0 : fValue) && !isInternalOptions;\r\n\r\n if (condition) {\r\n setInitialLoading(true);\r\n await fetchOptions('', { ...customeFilter, ...{ '&id.in': fValue } }, 1, false);\r\n setInitialLoading(false);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open, value, JSON.stringify(customeFilter)]);\r\n\r\n const hasValue = multiple\r\n ? Array.isArray(value) && value.length > 0\r\n : value !== null && value !== undefined && value !== \"\";\r\n\r\n // Effects\r\n useEffect(() => {\r\n if (open) {\r\n debounceSearch(searchQuery);\r\n }\r\n return () => debounceSearch.cancel();\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchQuery, JSON.stringify(customeFilter), open, isAlredyLoaded, debounceSearch]);\r\n\r\n useEffect(() => {\r\n setSelectedData();\r\n }, [setSelectedData]);\r\n\r\n useEffect(() => {\r\n fetchIdOptions();\r\n }, [fetchIdOptions]);\r\n\r\n useEffect(() => {\r\n if (open) {\r\n initialFetch();\r\n }\r\n }, [open, initialFetch]);\r\n\r\n useEffect(() => {\r\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\r\n if (customeFilter && condition) {\r\n setIsAlredyLoaded(false);\r\n }\r\n }, [customeFilter, prevFilter]);\r\n\r\n useEffect(() => {\r\n if (value && !open) {\r\n const selectedData = options?.filter((i: any) =>\r\n multiple ? value?.includes(i?.value) : i?.value == value\r\n ) || [];\r\n setSelectedOptions(selectedData);\r\n }\r\n setSelectedOptions(filteredOptions?.filter((i: any) =>\r\n multiple ? value?.includes(i?.value) : i?.value == value\r\n ));\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value, open, options, multiple]);\r\n\r\n const handleOnChange = (event: any) => {\r\n const { value } = event.target;\r\n if ((multiple && Array.isArray(value) && value?.filter(v => v).length == 0) || !value) return;\r\n\r\n const isSelected = (item: any) => {\r\n return multiple ? value?.includes(item?.value) : item?.value === value;\r\n };\r\n\r\n const selected = filteredOptions?.filter(isSelected);\r\n onChange?.(event, multiple ? selected : selected?.[0]);\r\n getSelectedData?.(multiple ? selected : selected?.[0]);\r\n\r\n };\r\n\r\n const removeUndefine = (selectOptions: any[]) => {\r\n return Array.isArray(selectOptions) && selectOptions?.length > 0 && selectOptions?.filter((option) => option);\r\n };\r\n\r\n const showGroupLabel = (item: any) => {\r\n if (!item?.length) {\r\n return undefined\r\n }\r\n const mergedOptions = item?.flatMap((i: any) => i?.options)\r\n return mergedOptions?.find((option: any) => option?.value === value)?.label\r\n }\r\n\r\n return (\r\n <Select\r\n labelId={labelId}\r\n name={name}\r\n defaultValue={defaultValue || (multiple ? [] : '')}\r\n placeholder={placeholder}\r\n className=\"filter-select\"\r\n size={size}\r\n onOpen={() => setOpen(true)}\r\n onClose={() => {\r\n setOpen(false);\r\n if (searchQuery?.length > 0) {\r\n setIsAlredyLoaded(false);\r\n }\r\n setSearchInitiate(false);\r\n setSearchQuery('');\r\n }}\r\n onChange={handleOnChange}\r\n showCancelButton={showCancelButton}\r\n multiple={multiple}\r\n label={t(label)}\r\n fullWidth\r\n displayEmpty\r\n autoFocus={autoFocus}\r\n error={Boolean(error)}\r\n disabled={disabled}\r\n value={initailLoading ? (multiple ? [] : '') : value?.id || value || (multiple ? [] : '')}\r\n searchPlaceholder={searchPlaceholder}\r\n CustomDropdownIcon={CustomDropDownIcon}\r\n sx={(multiple && value?.length) ? { ...customStyle, \"& .MuiSelect-select\": { padding: '5.5px !important' } } : customStyle}\r\n MenuProps={{\r\n PaperProps: {\r\n onScroll: handleScroll,\r\n style: { maxHeight: 295, maxWidth: 250 }\r\n }\r\n }}\r\n input={\r\n !disabled ? (\r\n <OutlinedInput\r\n label=\"\"\r\n sx={inputStyle}\r\n endAdornment={\r\n <InputAdornment position=\"end\">\r\n {loading || is_loading ? (\r\n <CircularProgress\r\n size={20}\r\n sx={{ mr: 3, color: \"#4AC08C\" }}\r\n />\r\n ) : (\r\n showCancelButton && hasValue && (\r\n <IconButton\r\n aria-label=\"clear selection\"\r\n onClick={handleClear}\r\n edge=\"end\"\r\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\r\n size=\"small\"\r\n >\r\n <Close fontSize=\"small\" color='theme.primary.800' />\r\n </IconButton>\r\n )\r\n )}\r\n </InputAdornment>\r\n }\r\n />\r\n ) : undefined\r\n }\r\n renderValue={(selected?: string | string[]) => {\r\n return (\r\n <>\r\n {Array.isArray(selected) ? (\r\n <ChipOrPlaceholder\r\n selectedLabel={selectedLabel}\r\n data={removeUndefine(selected)}\r\n placeholder={placeholder}\r\n onDelete={onChipRemove}\r\n disabled={disabled}\r\n chipProps={{\r\n sx: {\r\n bgcolor: 'theme.primary.100',\r\n border: 0,\r\n // borderRadius: '15px',\r\n '& .MuiTypography-body1': {\r\n color: 'theme.primary.800',\r\n fontWeight: \"500\",\r\n }\r\n }\r\n }}\r\n />\r\n ) : (\r\n hasParent ? showGroupLabel(filteredOptions) :\r\n Array.isArray(filteredOptions) && filteredOptions?.length > 0 && filteredOptions?.find(\r\n (option: any) => option?.value == value\r\n )?.label || selected || placeholder\r\n )}\r\n </>\r\n );\r\n }}\r\n handleSearch={(text) => {\r\n setSearchQuery(text);\r\n setSearchInitiate(true);\r\n }}\r\n >\r\n {generateMenuItems({\r\n options: filteredOptions,\r\n multiple: Boolean(multiple),\r\n placeholder,\r\n values: value,\r\n with_checkboxes: true,\r\n field: {\r\n ...props,\r\n enable_footer,\r\n onFooterClick,\r\n label\r\n },\r\n disabledIds,\r\n handleClear,\r\n handleChange,\r\n hasParent,\r\n t: (key: string) => key\r\n })}\r\n {pagination.isLoadingMore && (\r\n <MenuItem disabled>\r\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n <CircularProgress size={20} />\r\n </Box>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n );\r\n};\r\n\r\nexport default SearchableSelect;"],"names":["index","value","filteredOptions","label","React","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/components/searchable-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n CircularProgress,\n Divider,\n IconButton,\n InputAdornment,\n MenuItem,\n OutlinedInput,\n} from \"@mui/material\";\nimport Select from \"./select/select\";\nimport Checkbox from \"./checkbox/checkbox\";\nimport Typography from \"./typography/typography\";\nimport { Close } from \"./icons\";\nimport { debounce, sortBy } from \"lodash\";\nimport { fetchApi } from \"../utils/api\";\nimport ChipOrPlaceholder from \"./form-control/form-builder/form-builder-element/chip-or-placeholder\";\nimport { Add } from \"@mui/icons-material\";\nimport { useLanguage } from \"../hooks/useLangauge\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IOption {\n id: string | number;\n value: string | number;\n label: string | React.ReactNode;\n disabled?: boolean;\n isGroup?: boolean;\n options?: IOption[];\n searchLabel?: string;\n}\n\ninterface IPaginationState {\n page: number;\n hasMore: boolean;\n isLoadingMore: boolean;\n total: number;\n}\n\ninterface IMenuItems {\n options: IOption[];\n multiple: boolean;\n placeholder: string;\n with_checkboxes: boolean;\n values: string | string[];\n field: any;\n disabledIds: any[];\n handleClear: () => void;\n handleChange?: (value: string | string[]) => void;\n hasParent?: boolean;\n}\n\n// Custom API fetch function type for parent components\ninterface CustomFetchApiParams {\n search?: string;\n filters?: any;\n limit: number;\n skip: number;\n select?: string;\n order?: string;\n}\n\ninterface CustomFetchApiResponse {\n data: IOption[];\n pagination?: {\n totalCount: number;\n };\n}\n\ninterface SearchableSelectProps {\n labelId: string;\n label: string;\n value: any;\n onChange?: (event: any, selectedData?: any) => void;\n options: IOption[];\n multiple?: boolean;\n placeholder?: string;\n size?: \"small\" | \"medium\";\n searchPlaceholder?: string;\n CustomDropDownIcon: React.ReactNode;\n customStyle: any;\n name?: string;\n defaultValue?: any;\n apiType?: string;\n isInternal?: boolean;\n autoFocus?: any;\n error?: any;\n disabled: any;\n customeFilter?: string;\n attributes?: string;\n getSelectedData?: (row: any) => void;\n disabledIds: any[];\n labelKey?: string;\n valueKey?: string;\n inputStyle?: any;\n onChipRemove?: (value: string) => void;\n selectedLabel?: string;\n is_loading?: boolean;\n hasParent?: boolean;\n sortOrder?: string;\n handleChange?: (value: string | string[]) => void;\n enable_footer?: boolean;\n onFooterClick?: () => void;\n showCancelButton?: boolean;\n /** Custom API function to fetch options from parent component */\n customFetchApi?: (params: CustomFetchApiParams) => Promise<CustomFetchApiResponse>;\n}\n\nconst generateMenuItems = ({\n options,\n multiple,\n placeholder,\n with_checkboxes,\n values,\n field,\n disabledIds,\n handleClear,\n handleChange,\n hasParent = false,\n}: IMenuItems) => {\n const itemDisabled = (ls: any) => disabledIds?.includes(ls);\n const items: React.ReactElement[] = [];\n\n if (!multiple) {\n items.push(\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\n <Typography type='s3' color='theme.secondary.1000'>\n <em>{placeholder}</em>\n </Typography>\n </MenuItem>\n );\n }\n\n const selectedValues = Array.isArray(values) ? values?.filter((value) => value) : [];\n\n // Parent selection handlers\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n\n const isParentSelected = valueArray.includes(parentValue);\n const updatedValues = isParentSelected\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\n : [...new Set([...valueArray, parentValue, ...childValues])];\n\n handleChange?.(updatedValues);\n };\n\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.every((childValue) => valueArray.includes(childValue));\n };\n\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.some((childValue) => valueArray.includes(childValue));\n };\n\n Array.isArray(options) && options?.length > 0 && options?.forEach((option, index) => {\n items.push(\n <MenuItem\n value={option?.value}\n key={`${option?.value}-${index}`}\n disabled={Boolean(option?.disabled) || itemDisabled(option?.value) || (hasParent && !multiple)}\n className={option?.isGroup ? 'select--MenuItemHeader' : ''}\n onClick={() => {\n if (values?.length == 1) {\n handleClear();\n }\n }}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={\n hasParent\n ? isAllOptionsSelected(option.value, option.options || [])\n : Boolean(Array.isArray(values) && values?.indexOf(option?.value) > -1)\n }\n indeterminate={\n hasParent && isSomeOptionsSelected(option.options || [])\n }\n onChange={() =>\n hasParent\n ? handleParentChange(option.value, option.options || [])\n : handleChange?.(option.value)\n }\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(option.value)}\n >\n {option?.label}\n </Typography>\n </Box>\n </MenuItem>\n );\n\n // Handle child options for grouped items\n if (option?.isGroup && Array.isArray(option?.options)) {\n option.options.forEach((opt, index) => {\n items.push(\n <MenuItem\n id={`${option.value}-${opt.value} ${index}`}\n value={opt.value}\n disabled={Boolean(opt.disabled) || itemDisabled(opt.value)}\n sx={{ pl: 5 }}\n onClick={() => {\n if (values?.length == 1) {\n handleClear();\n }\n }}\n key={`${option.value}-${opt.value} ${index}`}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={Boolean(Array.isArray(values) && values?.indexOf(opt.value) > -1)}\n />\n )}\n <Typography\n id={`${option.value}-${opt.value} ${index}`}\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(String(opt.value))}\n >\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\n </Typography>\n </Box>\n </MenuItem>\n );\n });\n }\n });\n\n // Footer item\n if (field.enable_footer) {\n items.push(\n <Box key=\"footer\">\n <Divider flexItem />\n <MenuItem sx={{ gap: 1 }} onClick={field.onFooterClick}>\n <Add fontSize='small' />\n <Typography type='s4' color='theme.secondary.1000'>\n Create New {field.label}\n </Typography>\n </MenuItem>\n </Box>\n );\n }\n\n // No data fallback\n if (!items.length || (items.length == 1 && !multiple)) {\n items.push(\n <MenuItem disabled key=\"no-data\">\n No data available\n </MenuItem>\n );\n }\n\n return items;\n};\n\nconst SearchableSelect: React.FC<SearchableSelectProps> = (props) => {\n const {\n labelId,\n label,\n value,\n onChange,\n options,\n multiple = false,\n size = \"small\",\n searchPlaceholder,\n placeholder,\n name,\n defaultValue,\n apiType,\n isInternal = false,\n autoFocus,\n error,\n disabled,\n customeFilter,\n attributes,\n getSelectedData,\n disabledIds,\n onChipRemove,\n selectedLabel,\n is_loading,\n customStyle = {},\n CustomDropDownIcon,\n labelKey,\n valueKey,\n inputStyle,\n hasParent = false,\n sortOrder = 'id:-1',\n handleChange,\n enable_footer = false,\n onFooterClick,\n showCancelButton = true,\n customFetchApi\n } = props;\n\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [dynamicOptions, setOptions] = useState<IOption[]>([]);\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\n const [isAlredyLoaded, setIsAlredyLoaded] = useState(false);\n const [initailLoading, setInitialLoading] = useState(false);\n const [searchInitiate, setSearchInitiate] = useState(false);\n const [open, setOpen] = useState(false);\n const [prevFilter, setPrevFilter] = useState<any>(null);\n const { t } = useTranslation();\n\n // Pagination state\n const [pagination, setPagination] = useState<IPaginationState>({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n\n const { isRtl } = useLanguage();\n const limit = 25;\n\n const isInternalOptions = useMemo(() => {\n return isInternal || (!apiType && !customFetchApi);\n }, [isInternal, apiType, customFetchApi]);\n\n // Local search function for internal options\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\n if (!searchTerm) return options || [];\n\n const lowercasedSearchTerm = searchTerm.toLowerCase();\n\n const filteredOptions = hasParent\n ? options?.reduce((acc: IOption[], opt) => {\n const searchedOptions = opt.options?.filter((item) => {\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n });\n\n if (searchedOptions?.length) {\n acc.push({ ...opt, options: searchedOptions });\n }\n\n return acc;\n }, []) || []\n : options?.filter((opt) => {\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n }) || [];\n\n return sortBySelectedValues(filteredOptions, value);\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options, hasParent]);\n\n // Clear Selected Options\n const handleClear = () => {\n onChange?.({ target: { value: multiple ? [] : null } });\n if (getSelectedData && typeof getSelectedData === \"function\") {\n getSelectedData(null);\n }\n };\n\n // Get unique options\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\n const uniqueOptions = [\n ...new Map(data?.map(item => [item.value, item])).values()\n ];\n return uniqueOptions;\n }, []);\n\n // Sort by selected values\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\n const selectedValues = Array.isArray(value) ? value : [value];\n const sortedValue = sortBy(arrayToSort, (item) => {\n const index = selectedValues.indexOf(item.id || item.value);\n return index === -1 ? Infinity : index;\n });\n return sortedValue;\n }, []);\n\n // Options with search and pagination support\n const filteredOptions = useMemo(() => {\n if (isInternalOptions) {\n return searchOptionsLocally(searchQuery, value);\n }\n return sortBySelectedValues(getUniqueOptions([...dynamicOptions, ...selectedOptions]), value);\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery, dynamicOptions, options, value, isInternalOptions, selectedOptions, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\n\n // Handle scroll pagination\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\n\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\n const nextPage = pagination.page + 1;\n fetchOptions(searchQuery, customeFilter, nextPage, true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, JSON.stringify(customeFilter)]);\n\n // Update Options\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\n const oldOptions = append ? dynamicOptions : selectedOptions;\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\n setOptions(uniqueOptions);\n }, [dynamicOptions, selectedOptions, getUniqueOptions]);\n\n // Fetch Options with pagination support\n const fetchOptions = useCallback(async (searchTerm: any = '', filters = customeFilter, page = 1, append = false) => {\n // Skip if neither apiType nor customFetchApi is provided\n if (!apiType && !customFetchApi) return [];\n\n setLoading(true);\n if (page > 1) {\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\n }\n\n try {\n let data: IOption[] = [];\n let paginationResult: { totalCount?: number } = {};\n\n // Use custom API if provided, otherwise use default fetchApi\n if (customFetchApi) {\n const response = await customFetchApi({\n search: searchTerm,\n filters,\n limit,\n skip: (page - 1) * limit,\n select: attributes,\n order: sortOrder\n });\n data = response?.data || [];\n paginationResult = response?.pagination || {};\n } else {\n const response = await fetchApi({\n apiKey: apiType!,\n filters: {\n limit,\n skip: (page - 1) * limit,\n search: searchTerm,\n filters,\n select: attributes,\n order: sortOrder\n },\n labelKey,\n valueKey\n });\n data = response?.data || [];\n paginationResult = response?.pagination || {};\n }\n\n if (data && Array.isArray(data)) {\n updateOptions(data, append);\n\n // Update pagination\n setPagination(prev => ({\n ...prev,\n page,\n hasMore: (paginationResult?.totalCount || 0) > (page * limit),\n total: paginationResult?.totalCount || 0,\n isLoadingMore: false\n }));\n\n if (data?.length > 0) {\n setSelectedData();\n }\n }\n\n return data || [];\n } catch (error) {\n console.error('Error fetching options:', error);\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\n return [];\n } finally {\n setLoading(false);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiType, customFetchApi, attributes, sortOrder, limit, updateOptions]);\n\n // Search Options with debounce\n const debounceSearch = useMemo(\n () => debounce(async (searchTerm: string) => {\n if (loading) return;\n\n if (!searchTerm && !isInternalOptions && searchInitiate) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions('', customeFilter, 1, false);\n }\n if (searchTerm?.length > 1 && !isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions(searchTerm, customeFilter, 1, false);\n }\n }, 700),\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [isInternalOptions, searchInitiate, JSON.stringify(customeFilter)]\n );\n\n // Initial fetch with filter change detection\n const initialFetch = useCallback(async () => {\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\n\n if (condition && !isInternalOptions && !isAlredyLoaded) {\n setPrevFilter(customeFilter);\n setOptions([]);\n setIsAlredyLoaded(false);\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n }\n\n if (!isInternalOptions && !isAlredyLoaded) {\n await fetchOptions(searchQuery, customeFilter, 1, false);\n setIsAlredyLoaded(true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(customeFilter), isInternalOptions, isAlredyLoaded]);\n\n // Set Selected Data\n const setSelectedData = useCallback(() => {\n let hasOptions = false;\n const isInOptions = filteredOptions?.filter((i: any) =>\n multiple ? value?.includes(i?.value) : i?.value == value\n );\n\n if ((Array.isArray(isInOptions) && isInOptions?.length > 0)) {\n getSelectedData?.(multiple ? isInOptions : isInOptions[0]);\n hasOptions = true;\n }\n\n return hasOptions;\n }, [JSON.stringify(filteredOptions), value, multiple]);\n\n // Fetch Options for Selected Id\n const fetchIdOptions = useCallback(async () => {\n if (await setSelectedData()) return;\n if (open) return;\n\n const fValue = multiple ? value && value?.filter(v => Boolean(Number(v))) : value ? value : null;\n const condition = (multiple ? fValue?.length > 0 : fValue) && !isInternalOptions;\n\n if (condition) {\n setInitialLoading(true);\n await fetchOptions('', { ...customeFilter, ...{ '&id.in': fValue } }, 1, false);\n setInitialLoading(false);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, value, JSON.stringify(customeFilter)]);\n\n const hasValue = multiple\n ? Array.isArray(value) && value.length > 0\n : value !== null && value !== undefined && value !== \"\";\n\n // Effects\n useEffect(() => {\n if (open) {\n debounceSearch(searchQuery);\n }\n return () => debounceSearch.cancel();\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery, JSON.stringify(customeFilter), open, isAlredyLoaded, debounceSearch]);\n\n useEffect(() => {\n setSelectedData();\n }, [setSelectedData]);\n\n useEffect(() => {\n fetchIdOptions();\n }, [fetchIdOptions]);\n\n useEffect(() => {\n if (open) {\n initialFetch();\n }\n }, [open, initialFetch]);\n\n useEffect(() => {\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\n if (customeFilter && condition) {\n setIsAlredyLoaded(false);\n }\n }, [customeFilter, prevFilter]);\n\n useEffect(() => {\n if (value && !open) {\n const selectedData = options?.filter((i: any) =>\n multiple ? value?.includes(i?.value) : i?.value == value\n ) || [];\n setSelectedOptions(selectedData);\n }\n setSelectedOptions(filteredOptions?.filter((i: any) =>\n multiple ? value?.includes(i?.value) : i?.value == value\n ));\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, open, options, multiple]);\n\n const handleOnChange = (event: any) => {\n const { value } = event.target;\n if ((multiple && Array.isArray(value) && value?.filter(v => v).length == 0) || !value) return;\n\n const isSelected = (item: any) => {\n return multiple ? value?.includes(item?.value) : item?.value === value;\n };\n\n const selected = filteredOptions?.filter(isSelected);\n onChange?.(event, multiple ? selected : selected?.[0]);\n getSelectedData?.(multiple ? selected : selected?.[0]);\n\n };\n\n const removeUndefine = (selectOptions: any[]) => {\n return Array.isArray(selectOptions) && selectOptions?.length > 0 && selectOptions?.filter((option) => option);\n };\n\n const showGroupLabel = (item: any) => {\n if (!item?.length) {\n return undefined\n }\n const mergedOptions = item?.flatMap((i: any) => i?.options)\n return mergedOptions?.find((option: any) => option?.value === value)?.label\n }\n\n return (\n <Select\n labelId={labelId}\n name={name}\n defaultValue={defaultValue || (multiple ? [] : '')}\n placeholder={placeholder}\n className=\"filter-select\"\n size={size}\n onOpen={() => setOpen(true)}\n onClose={() => {\n setOpen(false);\n if (searchQuery?.length > 0) {\n setIsAlredyLoaded(false);\n }\n setSearchInitiate(false);\n setSearchQuery('');\n }}\n onChange={handleOnChange}\n showCancelButton={showCancelButton}\n multiple={multiple}\n label={t(label)}\n fullWidth\n displayEmpty\n autoFocus={autoFocus}\n error={Boolean(error)}\n disabled={disabled}\n value={initailLoading ? (multiple ? [] : '') : value?.id || value || (multiple ? [] : '')}\n searchPlaceholder={searchPlaceholder}\n CustomDropdownIcon={CustomDropDownIcon}\n sx={(multiple && value?.length) ? { ...customStyle, \"& .MuiSelect-select\": { padding: '5.5px !important' } } : customStyle}\n MenuProps={{\n PaperProps: {\n onScroll: handleScroll,\n style: { maxHeight: 295, maxWidth: 250 }\n }\n }}\n input={\n !disabled ? (\n <OutlinedInput\n label=\"\"\n sx={inputStyle}\n endAdornment={\n <InputAdornment position=\"end\">\n {loading || is_loading ? (\n <CircularProgress\n size={20}\n sx={{ mr: 3, color: \"#4AC08C\" }}\n />\n ) : (\n showCancelButton && hasValue && (\n <IconButton\n aria-label=\"clear selection\"\n onClick={handleClear}\n edge=\"end\"\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\n size=\"small\"\n >\n <Close fontSize=\"small\" color='theme.primary.800' />\n </IconButton>\n )\n )}\n </InputAdornment>\n }\n />\n ) : undefined\n }\n renderValue={(selected?: string | string[]) => {\n return (\n <>\n {Array.isArray(selected) ? (\n <ChipOrPlaceholder\n selectedLabel={selectedLabel}\n data={removeUndefine(selected)}\n placeholder={placeholder}\n onDelete={onChipRemove}\n disabled={disabled}\n chipProps={{\n sx: {\n bgcolor: 'theme.primary.100',\n border: 0,\n // borderRadius: '15px',\n '& .MuiTypography-body1': {\n color: 'theme.primary.800',\n fontWeight: \"500\",\n }\n }\n }}\n />\n ) : (\n hasParent ? showGroupLabel(filteredOptions) :\n Array.isArray(filteredOptions) && filteredOptions?.length > 0 && filteredOptions?.find(\n (option: any) => option?.value == value\n )?.label || selected || placeholder\n )}\n </>\n );\n }}\n handleSearch={(text) => {\n setSearchQuery(text);\n setSearchInitiate(true);\n }}\n >\n {generateMenuItems({\n options: filteredOptions,\n multiple: Boolean(multiple),\n placeholder,\n values: value,\n with_checkboxes: true,\n field: {\n ...props,\n enable_footer,\n onFooterClick,\n label\n },\n disabledIds,\n handleClear,\n handleChange,\n hasParent,\n t: (key: string) => key\n })}\n {pagination.isLoadingMore && (\n <MenuItem disabled>\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n <CircularProgress size={20} />\n </Box>\n </MenuItem>\n )}\n </Select>\n );\n};\n\nexport default SearchableSelect;"],"names":["index","value","filteredOptions","label","React","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/searchable-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport {\r\n Box,\r\n CircularProgress,\r\n Divider,\r\n IconButton,\r\n InputAdornment,\r\n MenuItem,\r\n OutlinedInput,\r\n} from \"@mui/material\";\r\nimport Select from \"./select/select\";\r\nimport Checkbox from \"./checkbox/checkbox\";\r\nimport Typography from \"./typography/typography\";\r\nimport { Close } from \"./icons\";\r\nimport { debounce, sortBy } from \"lodash\";\r\nimport { fetchApi } from \"../utils/api\";\r\nimport ChipOrPlaceholder from \"./form-control/form-builder/form-builder-element/chip-or-placeholder\";\r\nimport { Add } from \"@mui/icons-material\";\r\nimport { useLanguage } from \"../hooks/useLangauge\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\ninterface IOption {\r\n id: string | number;\r\n value: string | number;\r\n label: string | React.ReactNode;\r\n disabled?: boolean;\r\n isGroup?: boolean;\r\n options?: IOption[];\r\n searchLabel?: string;\r\n}\r\n\r\ninterface IPaginationState {\r\n page: number;\r\n hasMore: boolean;\r\n isLoadingMore: boolean;\r\n total: number;\r\n}\r\n\r\ninterface IMenuItems {\r\n options: IOption[];\r\n multiple: boolean;\r\n placeholder: string;\r\n with_checkboxes: boolean;\r\n values: string | string[];\r\n field: any;\r\n disabledIds: any[];\r\n handleClear: () => void;\r\n handleChange?: (value: string | string[]) => void;\r\n hasParent?: boolean;\r\n}\r\n\r\n// Custom API fetch function type for parent components\r\ninterface CustomFetchApiParams {\r\n search?: string;\r\n filters?: any;\r\n limit: number;\r\n skip: number;\r\n select?: string;\r\n order?: string;\r\n}\r\n\r\ninterface CustomFetchApiResponse {\r\n data: IOption[];\r\n pagination?: {\r\n totalCount: number;\r\n };\r\n}\r\n\r\ninterface SearchableSelectProps {\r\n labelId: string;\r\n label: string;\r\n value: any;\r\n onChange?: (event: any, selectedData?: any) => void;\r\n options: IOption[];\r\n multiple?: boolean;\r\n placeholder?: string;\r\n size?: \"small\" | \"medium\";\r\n searchPlaceholder?: string;\r\n CustomDropDownIcon: React.ReactNode;\r\n customStyle: any;\r\n name?: string;\r\n defaultValue?: any;\r\n apiType?: string;\r\n isInternal?: boolean;\r\n autoFocus?: any;\r\n error?: any;\r\n disabled: any;\r\n customeFilter?: string;\r\n attributes?: string;\r\n getSelectedData?: (row: any) => void;\r\n disabledIds: any[];\r\n labelKey?: string;\r\n valueKey?: string;\r\n inputStyle?: any;\r\n onChipRemove?: (value: string) => void;\r\n selectedLabel?: string;\r\n is_loading?: boolean;\r\n hasParent?: boolean;\r\n sortOrder?: string;\r\n handleChange?: (value: string | string[]) => void;\r\n enable_footer?: boolean;\r\n onFooterClick?: () => void;\r\n showCancelButton?: boolean;\r\n /** Custom API function to fetch options from parent component */\r\n customFetchApi?: (params: CustomFetchApiParams) => Promise<CustomFetchApiResponse>;\r\n}\r\n\r\nconst generateMenuItems = ({\r\n options,\r\n multiple,\r\n placeholder,\r\n with_checkboxes,\r\n values,\r\n field,\r\n disabledIds,\r\n handleClear,\r\n handleChange,\r\n hasParent = false,\r\n}: IMenuItems) => {\r\n const itemDisabled = (ls: any) => disabledIds?.includes(ls);\r\n const items: React.ReactElement[] = [];\r\n\r\n if (!multiple) {\r\n items.push(\r\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\r\n <Typography type='s3' color='theme.secondary.1000'>\r\n <em>{placeholder}</em>\r\n </Typography>\r\n </MenuItem>\r\n );\r\n }\r\n\r\n const selectedValues = Array.isArray(values) ? values?.filter((value) => value) : [];\r\n\r\n // Parent selection handlers\r\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n\r\n const isParentSelected = valueArray.includes(parentValue);\r\n const updatedValues = isParentSelected\r\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\r\n : [...new Set([...valueArray, parentValue, ...childValues])];\r\n\r\n handleChange?.(updatedValues);\r\n };\r\n\r\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.every((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.some((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n Array.isArray(options) && options?.length > 0 && options?.forEach((option, index) => {\r\n items.push(\r\n <MenuItem\r\n value={option?.value}\r\n key={`${option?.value}-${index}`}\r\n disabled={Boolean(option?.disabled) || itemDisabled(option?.value) || (hasParent && !multiple)}\r\n className={option?.isGroup ? 'select--MenuItemHeader' : ''}\r\n onClick={() => {\r\n if (values?.length == 1) {\r\n handleClear();\r\n }\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={\r\n hasParent\r\n ? isAllOptionsSelected(option.value, option.options || [])\r\n : Boolean(Array.isArray(values) && values?.indexOf(option?.value) > -1)\r\n }\r\n indeterminate={\r\n hasParent && isSomeOptionsSelected(option.options || [])\r\n }\r\n onChange={() =>\r\n hasParent\r\n ? handleParentChange(option.value, option.options || [])\r\n : handleChange?.(option.value)\r\n }\r\n />\r\n )}\r\n <Typography\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(option.value)}\r\n >\r\n {option?.label}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n\r\n // Handle child options for grouped items\r\n if (option?.isGroup && Array.isArray(option?.options)) {\r\n option.options.forEach((opt, index) => {\r\n items.push(\r\n <MenuItem\r\n id={`${option.value}-${opt.value} ${index}`}\r\n value={opt.value}\r\n disabled={Boolean(opt.disabled) || itemDisabled(opt.value)}\r\n sx={{ pl: 5 }}\r\n onClick={() => {\r\n if (values?.length == 1) {\r\n handleClear();\r\n }\r\n }}\r\n key={`${option.value}-${opt.value} ${index}`}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={Boolean(Array.isArray(values) && values?.indexOf(opt.value) > -1)}\r\n />\r\n )}\r\n <Typography\r\n id={`${option.value}-${opt.value} ${index}`}\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(String(opt.value))}\r\n >\r\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n });\r\n }\r\n });\r\n\r\n // Footer item\r\n if (field.enable_footer) {\r\n items.push(\r\n <Box key=\"footer\">\r\n <Divider flexItem />\r\n <MenuItem sx={{ gap: 1 }} onClick={field.onFooterClick}>\r\n <Add fontSize='small' />\r\n <Typography type='s4' color='theme.secondary.1000'>\r\n Create New {field.label}\r\n </Typography>\r\n </MenuItem>\r\n </Box>\r\n );\r\n }\r\n\r\n // No data fallback\r\n if (!items.length || (items.length == 1 && !multiple)) {\r\n items.push(\r\n <MenuItem disabled key=\"no-data\">\r\n No data available\r\n </MenuItem>\r\n );\r\n }\r\n\r\n return items;\r\n};\r\n\r\nconst SearchableSelect: React.FC<SearchableSelectProps> = (props) => {\r\n const {\r\n labelId,\r\n label,\r\n value,\r\n onChange,\r\n options,\r\n multiple = false,\r\n size = \"small\",\r\n searchPlaceholder,\r\n placeholder,\r\n name,\r\n defaultValue,\r\n apiType,\r\n isInternal = false,\r\n autoFocus,\r\n error,\r\n disabled,\r\n customeFilter,\r\n attributes,\r\n getSelectedData,\r\n disabledIds,\r\n onChipRemove,\r\n selectedLabel,\r\n is_loading,\r\n customStyle = {},\r\n CustomDropDownIcon,\r\n labelKey,\r\n valueKey,\r\n inputStyle,\r\n hasParent = false,\r\n sortOrder = 'id:-1',\r\n handleChange,\r\n enable_footer = false,\r\n onFooterClick,\r\n showCancelButton = true,\r\n customFetchApi\r\n } = props;\r\n\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [loading, setLoading] = useState<boolean>(false);\r\n const [dynamicOptions, setOptions] = useState<IOption[]>([]);\r\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\r\n const [isAlredyLoaded, setIsAlredyLoaded] = useState(false);\r\n const [initailLoading, setInitialLoading] = useState(false);\r\n const [searchInitiate, setSearchInitiate] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n const [prevFilter, setPrevFilter] = useState<any>(null);\r\n const { t } = useTranslation();\r\n\r\n // Pagination state\r\n const [pagination, setPagination] = useState<IPaginationState>({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n\r\n const { isRtl } = useLanguage();\r\n const limit = 25;\r\n\r\n const isInternalOptions = useMemo(() => {\r\n return isInternal || (!apiType && !customFetchApi);\r\n }, [isInternal, apiType, customFetchApi]);\r\n\r\n // Local search function for internal options\r\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\r\n if (!searchTerm) return options || [];\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n\r\n const filteredOptions = hasParent\r\n ? options?.reduce((acc: IOption[], opt) => {\r\n const searchedOptions = opt.options?.filter((item) => {\r\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n });\r\n\r\n if (searchedOptions?.length) {\r\n acc.push({ ...opt, options: searchedOptions });\r\n }\r\n\r\n return acc;\r\n }, []) || []\r\n : options?.filter((opt) => {\r\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n }) || [];\r\n\r\n return sortBySelectedValues(filteredOptions, value);\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [options, hasParent]);\r\n\r\n // Clear Selected Options\r\n const handleClear = () => {\r\n onChange?.({ target: { value: multiple ? [] : null } });\r\n if (getSelectedData && typeof getSelectedData === \"function\") {\r\n getSelectedData(null);\r\n }\r\n };\r\n\r\n // Get unique options\r\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\r\n const uniqueOptions = [\r\n ...new Map(data?.map(item => [item.value, item])).values()\r\n ];\r\n return uniqueOptions;\r\n }, []);\r\n\r\n // Sort by selected values\r\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\r\n const selectedValues = Array.isArray(value) ? value : [value];\r\n const sortedValue = sortBy(arrayToSort, (item) => {\r\n const index = selectedValues.indexOf(item.id || item.value);\r\n return index === -1 ? Infinity : index;\r\n });\r\n return sortedValue;\r\n }, []);\r\n\r\n // Options with search and pagination support\r\n const filteredOptions = useMemo(() => {\r\n if (isInternalOptions) {\r\n return searchOptionsLocally(searchQuery, value);\r\n }\r\n return sortBySelectedValues(getUniqueOptions([...dynamicOptions, ...selectedOptions]), value);\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchQuery, dynamicOptions, options, value, isInternalOptions, selectedOptions, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\r\n\r\n // Handle scroll pagination\r\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\r\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\r\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\r\n\r\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\r\n const nextPage = pagination.page + 1;\r\n fetchOptions(searchQuery, customeFilter, nextPage, true);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, JSON.stringify(customeFilter)]);\r\n\r\n // Update Options\r\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\r\n const oldOptions = append ? dynamicOptions : selectedOptions;\r\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\r\n setOptions(uniqueOptions);\r\n }, [dynamicOptions, selectedOptions, getUniqueOptions]);\r\n\r\n // Fetch Options with pagination support\r\n const fetchOptions = useCallback(async (searchTerm: any = '', filters = customeFilter, page = 1, append = false) => {\r\n // Skip if neither apiType nor customFetchApi is provided\r\n if (!apiType && !customFetchApi) return [];\r\n\r\n setLoading(true);\r\n if (page > 1) {\r\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\r\n }\r\n\r\n try {\r\n let data: IOption[] = [];\r\n let paginationResult: { totalCount?: number } = {};\r\n\r\n // Use custom API if provided, otherwise use default fetchApi\r\n if (customFetchApi) {\r\n const response = await customFetchApi({\r\n search: searchTerm,\r\n filters,\r\n limit,\r\n skip: (page - 1) * limit,\r\n select: attributes,\r\n order: sortOrder\r\n });\r\n data = response?.data || [];\r\n paginationResult = response?.pagination || {};\r\n } else {\r\n const response = await fetchApi({\r\n apiKey: apiType!,\r\n filters: {\r\n limit,\r\n skip: (page - 1) * limit,\r\n search: searchTerm,\r\n filters,\r\n select: attributes,\r\n order: sortOrder\r\n },\r\n labelKey,\r\n valueKey\r\n });\r\n data = response?.data || [];\r\n paginationResult = response?.pagination || {};\r\n }\r\n\r\n if (data && Array.isArray(data)) {\r\n updateOptions(data, append);\r\n\r\n // Update pagination\r\n setPagination(prev => ({\r\n ...prev,\r\n page,\r\n hasMore: (paginationResult?.totalCount || 0) > (page * limit),\r\n total: paginationResult?.totalCount || 0,\r\n isLoadingMore: false\r\n }));\r\n\r\n if (data?.length > 0) {\r\n setSelectedData();\r\n }\r\n }\r\n\r\n return data || [];\r\n } catch (error) {\r\n console.error('Error fetching options:', error);\r\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\r\n return [];\r\n } finally {\r\n setLoading(false);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [apiType, customFetchApi, attributes, sortOrder, limit, updateOptions]);\r\n\r\n // Search Options with debounce\r\n const debounceSearch = useMemo(\r\n () => debounce(async (searchTerm: string) => {\r\n if (loading) return;\r\n\r\n if (!searchTerm && !isInternalOptions && searchInitiate) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions('', customeFilter, 1, false);\r\n }\r\n if (searchTerm?.length > 1 && !isInternalOptions) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions(searchTerm, customeFilter, 1, false);\r\n }\r\n }, 700),\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n [isInternalOptions, searchInitiate, JSON.stringify(customeFilter)]\r\n );\r\n\r\n // Initial fetch with filter change detection\r\n const initialFetch = useCallback(async () => {\r\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\r\n\r\n if (condition && !isInternalOptions && !isAlredyLoaded) {\r\n setPrevFilter(customeFilter);\r\n setOptions([]);\r\n setIsAlredyLoaded(false);\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n }\r\n\r\n if (!isInternalOptions && !isAlredyLoaded) {\r\n await fetchOptions(searchQuery, customeFilter, 1, false);\r\n setIsAlredyLoaded(true);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [JSON.stringify(customeFilter), isInternalOptions, isAlredyLoaded]);\r\n\r\n // Set Selected Data\r\n const setSelectedData = useCallback(() => {\r\n let hasOptions = false;\r\n const isInOptions = filteredOptions?.filter((i: any) =>\r\n multiple ? value?.includes(i?.value) : i?.value == value\r\n );\r\n\r\n if ((Array.isArray(isInOptions) && isInOptions?.length > 0)) {\r\n getSelectedData?.(multiple ? isInOptions : isInOptions[0]);\r\n hasOptions = true;\r\n }\r\n\r\n return hasOptions;\r\n }, [JSON.stringify(filteredOptions), value, multiple]);\r\n\r\n // Fetch Options for Selected Id\r\n const fetchIdOptions = useCallback(async () => {\r\n if (await setSelectedData()) return;\r\n if (open) return;\r\n\r\n const fValue = multiple ? value && value?.filter(v => Boolean(Number(v))) : value ? value : null;\r\n const condition = (multiple ? fValue?.length > 0 : fValue) && !isInternalOptions;\r\n\r\n if (condition) {\r\n setInitialLoading(true);\r\n await fetchOptions('', { ...customeFilter, ...{ '&id.in': fValue } }, 1, false);\r\n setInitialLoading(false);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open, value, JSON.stringify(customeFilter)]);\r\n\r\n const hasValue = multiple\r\n ? Array.isArray(value) && value.length > 0\r\n : value !== null && value !== undefined && value !== \"\";\r\n\r\n // Effects\r\n useEffect(() => {\r\n if (open) {\r\n debounceSearch(searchQuery);\r\n }\r\n return () => debounceSearch.cancel();\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchQuery, JSON.stringify(customeFilter), open, isAlredyLoaded, debounceSearch]);\r\n\r\n useEffect(() => {\r\n setSelectedData();\r\n }, [setSelectedData]);\r\n\r\n useEffect(() => {\r\n fetchIdOptions();\r\n }, [fetchIdOptions]);\r\n\r\n useEffect(() => {\r\n if (open) {\r\n initialFetch();\r\n }\r\n }, [open, initialFetch]);\r\n\r\n useEffect(() => {\r\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\r\n if (customeFilter && condition) {\r\n setIsAlredyLoaded(false);\r\n }\r\n }, [customeFilter, prevFilter]);\r\n\r\n useEffect(() => {\r\n if (value && !open) {\r\n const selectedData = options?.filter((i: any) =>\r\n multiple ? value?.includes(i?.value) : i?.value == value\r\n ) || [];\r\n setSelectedOptions(selectedData);\r\n }\r\n setSelectedOptions(filteredOptions?.filter((i: any) =>\r\n multiple ? value?.includes(i?.value) : i?.value == value\r\n ));\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value, open, options, multiple]);\r\n\r\n const handleOnChange = (event: any) => {\r\n const { value } = event.target;\r\n if ((multiple && Array.isArray(value) && value?.filter(v => v).length == 0) || !value) return;\r\n\r\n const isSelected = (item: any) => {\r\n return multiple ? value?.includes(item?.value) : item?.value === value;\r\n };\r\n\r\n const selected = filteredOptions?.filter(isSelected);\r\n onChange?.(event, multiple ? selected : selected?.[0]);\r\n getSelectedData?.(multiple ? selected : selected?.[0]);\r\n\r\n };\r\n\r\n const removeUndefine = (selectOptions: any[]) => {\r\n return Array.isArray(selectOptions) && selectOptions?.length > 0 && selectOptions?.filter((option) => option);\r\n };\r\n\r\n const showGroupLabel = (item: any) => {\r\n if (!item?.length) {\r\n return undefined\r\n }\r\n const mergedOptions = item?.flatMap((i: any) => i?.options)\r\n return mergedOptions?.find((option: any) => option?.value === value)?.label\r\n }\r\n\r\n return (\r\n <Select\r\n labelId={labelId}\r\n name={name}\r\n defaultValue={defaultValue || (multiple ? [] : '')}\r\n placeholder={placeholder}\r\n className=\"filter-select\"\r\n size={size}\r\n onOpen={() => setOpen(true)}\r\n onClose={() => {\r\n setOpen(false);\r\n if (searchQuery?.length > 0) {\r\n setIsAlredyLoaded(false);\r\n }\r\n setSearchInitiate(false);\r\n setSearchQuery('');\r\n }}\r\n onChange={handleOnChange}\r\n showCancelButton={showCancelButton}\r\n multiple={multiple}\r\n label={t(label)}\r\n fullWidth\r\n displayEmpty\r\n autoFocus={autoFocus}\r\n error={Boolean(error)}\r\n disabled={disabled}\r\n value={initailLoading ? (multiple ? [] : '') : value?.id || value || (multiple ? [] : '')}\r\n searchPlaceholder={searchPlaceholder}\r\n CustomDropdownIcon={CustomDropDownIcon}\r\n sx={(multiple && value?.length) ? { ...customStyle, \"& .MuiSelect-select\": { padding: '5.5px !important' } } : customStyle}\r\n MenuProps={{\r\n PaperProps: {\r\n onScroll: handleScroll,\r\n style: { maxHeight: 295, maxWidth: 250 }\r\n }\r\n }}\r\n input={\r\n !disabled ? (\r\n <OutlinedInput\r\n label=\"\"\r\n sx={inputStyle}\r\n endAdornment={\r\n <InputAdornment position=\"end\">\r\n {loading || is_loading ? (\r\n <CircularProgress\r\n size={20}\r\n sx={{ mr: 3, color: \"#4AC08C\" }}\r\n />\r\n ) : (\r\n showCancelButton && hasValue && (\r\n <IconButton\r\n aria-label=\"clear selection\"\r\n onClick={handleClear}\r\n edge=\"end\"\r\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\r\n size=\"small\"\r\n >\r\n <Close fontSize=\"small\" color='theme.primary.800' />\r\n </IconButton>\r\n )\r\n )}\r\n </InputAdornment>\r\n }\r\n />\r\n ) : undefined\r\n }\r\n renderValue={(selected?: string | string[]) => {\r\n return (\r\n <>\r\n {Array.isArray(selected) ? (\r\n <ChipOrPlaceholder\r\n selectedLabel={selectedLabel}\r\n data={removeUndefine(selected)}\r\n placeholder={placeholder}\r\n onDelete={onChipRemove}\r\n disabled={disabled}\r\n chipProps={{\r\n sx: {\r\n bgcolor: 'theme.primary.100',\r\n border: 0,\r\n // borderRadius: '15px',\r\n '& .MuiTypography-body1': {\r\n color: 'theme.primary.800',\r\n fontWeight: \"500\",\r\n }\r\n }\r\n }}\r\n />\r\n ) : (\r\n hasParent ? showGroupLabel(filteredOptions) :\r\n Array.isArray(filteredOptions) && filteredOptions?.length > 0 && filteredOptions?.find(\r\n (option: any) => option?.value == value\r\n )?.label || selected || placeholder\r\n )}\r\n </>\r\n );\r\n }}\r\n handleSearch={(text) => {\r\n setSearchQuery(text);\r\n setSearchInitiate(true);\r\n }}\r\n >\r\n {generateMenuItems({\r\n options: filteredOptions,\r\n multiple: Boolean(multiple),\r\n placeholder,\r\n values: value,\r\n with_checkboxes: true,\r\n field: {\r\n ...props,\r\n enable_footer,\r\n onFooterClick,\r\n label\r\n },\r\n disabledIds,\r\n handleClear,\r\n handleChange,\r\n hasParent,\r\n t: (key: string) => key\r\n })}\r\n {pagination.isLoadingMore && (\r\n <MenuItem disabled>\r\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n <CircularProgress size={20} />\r\n </Box>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n );\r\n};\r\n\r\nexport default SearchableSelect;"],"names":["generateMenuItems","options","multiple","placeholder","with_checkboxes","values","field","disabledIds","handleClear","handleChange","hasParent","itemDisabled","ls","includes","items","push","jsx","MenuItem","disabled","value","sx","opacity","height","p","m","children","Typography","type","color","selectedValues","Array","isArray","filter","isAllOptionsSelected","parentValue","childOptions","childValues","map","child","valueArray","every","childValue","isSomeOptionsSelected","some","length","forEach","option","index","Boolean","className","isGroup","onClick","jsxs","Box","display","gap","Checkbox","checked","indexOf","indeterminate","onChange","updatedValues","Set","handleParentChange","label","opt","id","pl","String","enable_footer","Divider","flexItem","onFooterClick","Add","fontSize","props","labelId","size","searchPlaceholder","name","defaultValue","apiType","isInternal","autoFocus","error","customeFilter","attributes","getSelectedData","onChipRemove","selectedLabel","is_loading","customStyle","CustomDropDownIcon","labelKey","valueKey","inputStyle","sortOrder","showCancelButton","customFetchApi","searchQuery","setSearchQuery","useState","loading","setLoading","dynamicOptions","setOptions","selectedOptions","setSelectedOptions","isAlredyLoaded","setIsAlredyLoaded","initailLoading","setInitialLoading","searchInitiate","setSearchInitiate","open","setOpen","prevFilter","setPrevFilter","t","useTranslation","pagination","setPagination","page","hasMore","isLoadingMore","total","isRtl","useLanguage","limit","isInternalOptions","useMemo","searchOptionsLocally","useCallback","searchTerm","lowercasedSearchTerm","toLowerCase","filteredOptions","reduce","acc","searchedOptions","_a","item","React","isValidElement","searchLabel","sortBySelectedValues","target","getUniqueOptions","data","Map","arrayToSort","sortBy","Infinity","handleScroll","event","scrollTop","scrollHeight","clientHeight","currentTarget","nextPage","fetchOptions","JSON","stringify","updateOptions","newOptions","append","uniqueOptions","async","filters","prev","paginationResult","response","search","skip","select","order","fetchApi","apiKey","totalCount","setSelectedData","debounceSearch","debounce","initialFetch","hasOptions","isInOptions","i","fetchIdOptions","fValue","v","Number","hasValue","useEffect","cancel","condition","selectedData","showGroupLabel","mergedOptions","flatMap","find","Select","onOpen","onClose","selected","fullWidth","displayEmpty","CustomDropdownIcon","padding","MenuProps","PaperProps","onScroll","style","maxHeight","maxWidth","input","OutlinedInput","endAdornment","InputAdornment","position","CircularProgress","mr","IconButton","edge","ml","Close","renderValue","selectOptions","Fragment","ChipOrPlaceholder","onDelete","chipProps","bgcolor","border","fontWeight","handleSearch","text","justifyContent","width"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/searchable-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n Box,\n CircularProgress,\n Divider,\n IconButton,\n InputAdornment,\n MenuItem,\n OutlinedInput,\n} from \"@mui/material\";\nimport Select from \"./select/select\";\nimport Checkbox from \"./checkbox/checkbox\";\nimport Typography from \"./typography/typography\";\nimport { Close } from \"./icons\";\nimport { debounce, sortBy } from \"lodash\";\nimport { fetchApi } from \"../utils/api\";\nimport ChipOrPlaceholder from \"./form-control/form-builder/form-builder-element/chip-or-placeholder\";\nimport { Add } from \"@mui/icons-material\";\nimport { useLanguage } from \"../hooks/useLangauge\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IOption {\n id: string | number;\n value: string | number;\n label: string | React.ReactNode;\n disabled?: boolean;\n isGroup?: boolean;\n options?: IOption[];\n searchLabel?: string;\n}\n\ninterface IPaginationState {\n page: number;\n hasMore: boolean;\n isLoadingMore: boolean;\n total: number;\n}\n\ninterface IMenuItems {\n options: IOption[];\n multiple: boolean;\n placeholder: string;\n with_checkboxes: boolean;\n values: string | string[];\n field: any;\n disabledIds: any[];\n handleClear: () => void;\n handleChange?: (value: string | string[]) => void;\n hasParent?: boolean;\n}\n\n// Custom API fetch function type for parent components\ninterface CustomFetchApiParams {\n search?: string;\n filters?: any;\n limit: number;\n skip: number;\n select?: string;\n order?: string;\n}\n\ninterface CustomFetchApiResponse {\n data: IOption[];\n pagination?: {\n totalCount: number;\n };\n}\n\ninterface SearchableSelectProps {\n labelId: string;\n label: string;\n value: any;\n onChange?: (event: any, selectedData?: any) => void;\n options: IOption[];\n multiple?: boolean;\n placeholder?: string;\n size?: \"small\" | \"medium\";\n searchPlaceholder?: string;\n CustomDropDownIcon: React.ReactNode;\n customStyle: any;\n name?: string;\n defaultValue?: any;\n apiType?: string;\n isInternal?: boolean;\n autoFocus?: any;\n error?: any;\n disabled: any;\n customeFilter?: string;\n attributes?: string;\n getSelectedData?: (row: any) => void;\n disabledIds: any[];\n labelKey?: string;\n valueKey?: string;\n inputStyle?: any;\n onChipRemove?: (value: string) => void;\n selectedLabel?: string;\n is_loading?: boolean;\n hasParent?: boolean;\n sortOrder?: string;\n handleChange?: (value: string | string[]) => void;\n enable_footer?: boolean;\n onFooterClick?: () => void;\n showCancelButton?: boolean;\n /** Custom API function to fetch options from parent component */\n customFetchApi?: (params: CustomFetchApiParams) => Promise<CustomFetchApiResponse>;\n}\n\nconst generateMenuItems = ({\n options,\n multiple,\n placeholder,\n with_checkboxes,\n values,\n field,\n disabledIds,\n handleClear,\n handleChange,\n hasParent = false,\n}: IMenuItems) => {\n const itemDisabled = (ls: any) => disabledIds?.includes(ls);\n const items: React.ReactElement[] = [];\n\n if (!multiple) {\n items.push(\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\n <Typography type='s3' color='theme.secondary.1000'>\n <em>{placeholder}</em>\n </Typography>\n </MenuItem>\n );\n }\n\n const selectedValues = Array.isArray(values) ? values?.filter((value) => value) : [];\n\n // Parent selection handlers\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n\n const isParentSelected = valueArray.includes(parentValue);\n const updatedValues = isParentSelected\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\n : [...new Set([...valueArray, parentValue, ...childValues])];\n\n handleChange?.(updatedValues);\n };\n\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.every((childValue) => valueArray.includes(childValue));\n };\n\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.some((childValue) => valueArray.includes(childValue));\n };\n\n Array.isArray(options) && options?.length > 0 && options?.forEach((option, index) => {\n items.push(\n <MenuItem\n value={option?.value}\n key={`${option?.value}-${index}`}\n disabled={Boolean(option?.disabled) || itemDisabled(option?.value) || (hasParent && !multiple)}\n className={option?.isGroup ? 'select--MenuItemHeader' : ''}\n onClick={() => {\n if (values?.length == 1) {\n handleClear();\n }\n }}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={\n hasParent\n ? isAllOptionsSelected(option.value, option.options || [])\n : Boolean(Array.isArray(values) && values?.indexOf(option?.value) > -1)\n }\n indeterminate={\n hasParent && isSomeOptionsSelected(option.options || [])\n }\n onChange={() =>\n hasParent\n ? handleParentChange(option.value, option.options || [])\n : handleChange?.(option.value)\n }\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(option.value)}\n >\n {option?.label}\n </Typography>\n </Box>\n </MenuItem>\n );\n\n // Handle child options for grouped items\n if (option?.isGroup && Array.isArray(option?.options)) {\n option.options.forEach((opt, index) => {\n items.push(\n <MenuItem\n id={`${option.value}-${opt.value} ${index}`}\n value={opt.value}\n disabled={Boolean(opt.disabled) || itemDisabled(opt.value)}\n sx={{ pl: 5 }}\n onClick={() => {\n if (values?.length == 1) {\n handleClear();\n }\n }}\n key={`${option.value}-${opt.value} ${index}`}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={Boolean(Array.isArray(values) && values?.indexOf(opt.value) > -1)}\n />\n )}\n <Typography\n id={`${option.value}-${opt.value} ${index}`}\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(String(opt.value))}\n >\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\n </Typography>\n </Box>\n </MenuItem>\n );\n });\n }\n });\n\n // Footer item\n if (field.enable_footer) {\n items.push(\n <Box key=\"footer\">\n <Divider flexItem />\n <MenuItem sx={{ gap: 1 }} onClick={field.onFooterClick}>\n <Add fontSize='small' />\n <Typography type='s4' color='theme.secondary.1000'>\n Create New {field.label}\n </Typography>\n </MenuItem>\n </Box>\n );\n }\n\n // No data fallback\n if (!items.length || (items.length == 1 && !multiple)) {\n items.push(\n <MenuItem disabled key=\"no-data\">\n No data available\n </MenuItem>\n );\n }\n\n return items;\n};\n\nconst SearchableSelect: React.FC<SearchableSelectProps> = (props) => {\n const {\n labelId,\n label,\n value,\n onChange,\n options,\n multiple = false,\n size = \"small\",\n searchPlaceholder,\n placeholder,\n name,\n defaultValue,\n apiType,\n isInternal = false,\n autoFocus,\n error,\n disabled,\n customeFilter,\n attributes,\n getSelectedData,\n disabledIds,\n onChipRemove,\n selectedLabel,\n is_loading,\n customStyle = {},\n CustomDropDownIcon,\n labelKey,\n valueKey,\n inputStyle,\n hasParent = false,\n sortOrder = 'id:-1',\n handleChange,\n enable_footer = false,\n onFooterClick,\n showCancelButton = true,\n customFetchApi\n } = props;\n\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [dynamicOptions, setOptions] = useState<IOption[]>([]);\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\n const [isAlredyLoaded, setIsAlredyLoaded] = useState(false);\n const [initailLoading, setInitialLoading] = useState(false);\n const [searchInitiate, setSearchInitiate] = useState(false);\n const [open, setOpen] = useState(false);\n const [prevFilter, setPrevFilter] = useState<any>(null);\n const { t } = useTranslation();\n\n // Pagination state\n const [pagination, setPagination] = useState<IPaginationState>({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n\n const { isRtl } = useLanguage();\n const limit = 25;\n\n const isInternalOptions = useMemo(() => {\n return isInternal || (!apiType && !customFetchApi);\n }, [isInternal, apiType, customFetchApi]);\n\n // Local search function for internal options\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\n if (!searchTerm) return options || [];\n\n const lowercasedSearchTerm = searchTerm.toLowerCase();\n\n const filteredOptions = hasParent\n ? options?.reduce((acc: IOption[], opt) => {\n const searchedOptions = opt.options?.filter((item) => {\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n });\n\n if (searchedOptions?.length) {\n acc.push({ ...opt, options: searchedOptions });\n }\n\n return acc;\n }, []) || []\n : options?.filter((opt) => {\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n }) || [];\n\n return sortBySelectedValues(filteredOptions, value);\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options, hasParent]);\n\n // Clear Selected Options\n const handleClear = () => {\n onChange?.({ target: { value: multiple ? [] : null } });\n if (getSelectedData && typeof getSelectedData === \"function\") {\n getSelectedData(null);\n }\n };\n\n // Get unique options\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\n const uniqueOptions = [\n ...new Map(data?.map(item => [item.value, item])).values()\n ];\n return uniqueOptions;\n }, []);\n\n // Sort by selected values\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\n const selectedValues = Array.isArray(value) ? value : [value];\n const sortedValue = sortBy(arrayToSort, (item) => {\n const index = selectedValues.indexOf(item.id || item.value);\n return index === -1 ? Infinity : index;\n });\n return sortedValue;\n }, []);\n\n // Options with search and pagination support\n const filteredOptions = useMemo(() => {\n if (isInternalOptions) {\n return searchOptionsLocally(searchQuery, value);\n }\n return sortBySelectedValues(getUniqueOptions([...dynamicOptions, ...selectedOptions]), value);\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery, dynamicOptions, options, value, isInternalOptions, selectedOptions, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\n\n // Handle scroll pagination\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\n\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\n const nextPage = pagination.page + 1;\n fetchOptions(searchQuery, customeFilter, nextPage, true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, JSON.stringify(customeFilter)]);\n\n // Update Options\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\n const oldOptions = append ? dynamicOptions : selectedOptions;\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\n setOptions(uniqueOptions);\n }, [dynamicOptions, selectedOptions, getUniqueOptions]);\n\n // Fetch Options with pagination support\n const fetchOptions = useCallback(async (searchTerm: any = '', filters = customeFilter, page = 1, append = false) => {\n // Skip if neither apiType nor customFetchApi is provided\n if (!apiType && !customFetchApi) return [];\n\n setLoading(true);\n if (page > 1) {\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\n }\n\n try {\n let data: IOption[] = [];\n let paginationResult: { totalCount?: number } = {};\n\n // Use custom API if provided, otherwise use default fetchApi\n if (customFetchApi) {\n const response = await customFetchApi({\n search: searchTerm,\n filters,\n limit,\n skip: (page - 1) * limit,\n select: attributes,\n order: sortOrder\n });\n data = response?.data || [];\n paginationResult = response?.pagination || {};\n } else {\n const response = await fetchApi({\n apiKey: apiType!,\n filters: {\n limit,\n skip: (page - 1) * limit,\n search: searchTerm,\n filters,\n select: attributes,\n order: sortOrder\n },\n labelKey,\n valueKey\n });\n data = response?.data || [];\n paginationResult = response?.pagination || {};\n }\n\n if (data && Array.isArray(data)) {\n updateOptions(data, append);\n\n // Update pagination\n setPagination(prev => ({\n ...prev,\n page,\n hasMore: (paginationResult?.totalCount || 0) > (page * limit),\n total: paginationResult?.totalCount || 0,\n isLoadingMore: false\n }));\n\n if (data?.length > 0) {\n setSelectedData();\n }\n }\n\n return data || [];\n } catch (error) {\n console.error('Error fetching options:', error);\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\n return [];\n } finally {\n setLoading(false);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiType, customFetchApi, attributes, sortOrder, limit, updateOptions]);\n\n // Search Options with debounce\n const debounceSearch = useMemo(\n () => debounce(async (searchTerm: string) => {\n if (loading) return;\n\n if (!searchTerm && !isInternalOptions && searchInitiate) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions('', customeFilter, 1, false);\n }\n if (searchTerm?.length > 1 && !isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions(searchTerm, customeFilter, 1, false);\n }\n }, 700),\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [isInternalOptions, searchInitiate, JSON.stringify(customeFilter)]\n );\n\n // Initial fetch with filter change detection\n const initialFetch = useCallback(async () => {\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\n\n if (condition && !isInternalOptions && !isAlredyLoaded) {\n setPrevFilter(customeFilter);\n setOptions([]);\n setIsAlredyLoaded(false);\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n }\n\n if (!isInternalOptions && !isAlredyLoaded) {\n await fetchOptions(searchQuery, customeFilter, 1, false);\n setIsAlredyLoaded(true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(customeFilter), isInternalOptions, isAlredyLoaded]);\n\n // Set Selected Data\n const setSelectedData = useCallback(() => {\n let hasOptions = false;\n const isInOptions = filteredOptions?.filter((i: any) =>\n multiple ? value?.includes(i?.value) : i?.value == value\n );\n\n if ((Array.isArray(isInOptions) && isInOptions?.length > 0)) {\n getSelectedData?.(multiple ? isInOptions : isInOptions[0]);\n hasOptions = true;\n }\n\n return hasOptions;\n }, [JSON.stringify(filteredOptions), value, multiple]);\n\n // Fetch Options for Selected Id\n const fetchIdOptions = useCallback(async () => {\n if (await setSelectedData()) return;\n if (open) return;\n\n const fValue = multiple ? value && value?.filter(v => Boolean(Number(v))) : value ? value : null;\n const condition = (multiple ? fValue?.length > 0 : fValue) && !isInternalOptions;\n\n if (condition) {\n setInitialLoading(true);\n await fetchOptions('', { ...customeFilter, ...{ '&id.in': fValue } }, 1, false);\n setInitialLoading(false);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, value, JSON.stringify(customeFilter)]);\n\n const hasValue = multiple\n ? Array.isArray(value) && value.length > 0\n : value !== null && value !== undefined && value !== \"\";\n\n // Effects\n useEffect(() => {\n if (open) {\n debounceSearch(searchQuery);\n }\n return () => debounceSearch.cancel();\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery, JSON.stringify(customeFilter), open, isAlredyLoaded, debounceSearch]);\n\n useEffect(() => {\n setSelectedData();\n }, [setSelectedData]);\n\n useEffect(() => {\n fetchIdOptions();\n }, [fetchIdOptions]);\n\n useEffect(() => {\n if (open) {\n initialFetch();\n }\n }, [open, initialFetch]);\n\n useEffect(() => {\n const condition = JSON.stringify(customeFilter) !== JSON.stringify(prevFilter);\n if (customeFilter && condition) {\n setIsAlredyLoaded(false);\n }\n }, [customeFilter, prevFilter]);\n\n useEffect(() => {\n if (value && !open) {\n const selectedData = options?.filter((i: any) =>\n multiple ? value?.includes(i?.value) : i?.value == value\n ) || [];\n setSelectedOptions(selectedData);\n }\n setSelectedOptions(filteredOptions?.filter((i: any) =>\n multiple ? value?.includes(i?.value) : i?.value == value\n ));\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, open, options, multiple]);\n\n const handleOnChange = (event: any) => {\n const { value } = event.target;\n if ((multiple && Array.isArray(value) && value?.filter(v => v).length == 0) || !value) return;\n\n const isSelected = (item: any) => {\n return multiple ? value?.includes(item?.value) : item?.value === value;\n };\n\n const selected = filteredOptions?.filter(isSelected);\n onChange?.(event, multiple ? selected : selected?.[0]);\n getSelectedData?.(multiple ? selected : selected?.[0]);\n\n };\n\n const removeUndefine = (selectOptions: any[]) => {\n return Array.isArray(selectOptions) && selectOptions?.length > 0 && selectOptions?.filter((option) => option);\n };\n\n const showGroupLabel = (item: any) => {\n if (!item?.length) {\n return undefined\n }\n const mergedOptions = item?.flatMap((i: any) => i?.options)\n return mergedOptions?.find((option: any) => option?.value === value)?.label\n }\n\n return (\n <Select\n labelId={labelId}\n name={name}\n defaultValue={defaultValue || (multiple ? [] : '')}\n placeholder={placeholder}\n className=\"filter-select\"\n size={size}\n onOpen={() => setOpen(true)}\n onClose={() => {\n setOpen(false);\n if (searchQuery?.length > 0) {\n setIsAlredyLoaded(false);\n }\n setSearchInitiate(false);\n setSearchQuery('');\n }}\n onChange={handleOnChange}\n showCancelButton={showCancelButton}\n multiple={multiple}\n label={t(label)}\n fullWidth\n displayEmpty\n autoFocus={autoFocus}\n error={Boolean(error)}\n disabled={disabled}\n value={initailLoading ? (multiple ? [] : '') : value?.id || value || (multiple ? [] : '')}\n searchPlaceholder={searchPlaceholder}\n CustomDropdownIcon={CustomDropDownIcon}\n sx={(multiple && value?.length) ? { ...customStyle, \"& .MuiSelect-select\": { padding: '5.5px !important' } } : customStyle}\n MenuProps={{\n PaperProps: {\n onScroll: handleScroll,\n style: { maxHeight: 295, maxWidth: 250 }\n }\n }}\n input={\n !disabled ? (\n <OutlinedInput\n label=\"\"\n sx={inputStyle}\n endAdornment={\n <InputAdornment position=\"end\">\n {loading || is_loading ? (\n <CircularProgress\n size={20}\n sx={{ mr: 3, color: \"#4AC08C\" }}\n />\n ) : (\n showCancelButton && hasValue && (\n <IconButton\n aria-label=\"clear selection\"\n onClick={handleClear}\n edge=\"end\"\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\n size=\"small\"\n >\n <Close fontSize=\"small\" color='theme.primary.800' />\n </IconButton>\n )\n )}\n </InputAdornment>\n }\n />\n ) : undefined\n }\n renderValue={(selected?: string | string[]) => {\n return (\n <>\n {Array.isArray(selected) ? (\n <ChipOrPlaceholder\n selectedLabel={selectedLabel}\n data={removeUndefine(selected)}\n placeholder={placeholder}\n onDelete={onChipRemove}\n disabled={disabled}\n chipProps={{\n sx: {\n bgcolor: 'theme.primary.100',\n border: 0,\n // borderRadius: '15px',\n '& .MuiTypography-body1': {\n color: 'theme.primary.800',\n fontWeight: \"500\",\n }\n }\n }}\n />\n ) : (\n hasParent ? showGroupLabel(filteredOptions) :\n Array.isArray(filteredOptions) && filteredOptions?.length > 0 && filteredOptions?.find(\n (option: any) => option?.value == value\n )?.label || selected || placeholder\n )}\n </>\n );\n }}\n handleSearch={(text) => {\n setSearchQuery(text);\n setSearchInitiate(true);\n }}\n >\n {generateMenuItems({\n options: filteredOptions,\n multiple: Boolean(multiple),\n placeholder,\n values: value,\n with_checkboxes: true,\n field: {\n ...props,\n enable_footer,\n onFooterClick,\n label\n },\n disabledIds,\n handleClear,\n handleChange,\n hasParent,\n t: (key: string) => key\n })}\n {pagination.isLoadingMore && (\n <MenuItem disabled>\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n <CircularProgress size={20} />\n </Box>\n </MenuItem>\n )}\n </Select>\n );\n};\n\nexport default SearchableSelect;"],"names":["generateMenuItems","options","multiple","placeholder","with_checkboxes","values","field","disabledIds","handleClear","handleChange","hasParent","itemDisabled","ls","includes","items","push","jsx","MenuItem","disabled","value","sx","opacity","height","p","m","children","Typography","type","color","selectedValues","Array","isArray","filter","isAllOptionsSelected","parentValue","childOptions","childValues","map","child","valueArray","every","childValue","isSomeOptionsSelected","some","length","forEach","option","index","Boolean","className","isGroup","onClick","jsxs","Box","display","gap","Checkbox","checked","indexOf","indeterminate","onChange","updatedValues","Set","handleParentChange","label","opt","id","pl","String","enable_footer","Divider","flexItem","onFooterClick","Add","fontSize","props","labelId","size","searchPlaceholder","name","defaultValue","apiType","isInternal","autoFocus","error","customeFilter","attributes","getSelectedData","onChipRemove","selectedLabel","is_loading","customStyle","CustomDropDownIcon","labelKey","valueKey","inputStyle","sortOrder","showCancelButton","customFetchApi","searchQuery","setSearchQuery","useState","loading","setLoading","dynamicOptions","setOptions","selectedOptions","setSelectedOptions","isAlredyLoaded","setIsAlredyLoaded","initailLoading","setInitialLoading","searchInitiate","setSearchInitiate","open","setOpen","prevFilter","setPrevFilter","t","useTranslation","pagination","setPagination","page","hasMore","isLoadingMore","total","isRtl","useLanguage","limit","isInternalOptions","useMemo","searchOptionsLocally","useCallback","searchTerm","lowercasedSearchTerm","toLowerCase","filteredOptions","reduce","acc","searchedOptions","_a","item","React","isValidElement","searchLabel","sortBySelectedValues","target","getUniqueOptions","data","Map","arrayToSort","sortBy","Infinity","handleScroll","event","scrollTop","scrollHeight","clientHeight","currentTarget","nextPage","fetchOptions","JSON","stringify","updateOptions","newOptions","append","uniqueOptions","async","filters","prev","paginationResult","response","search","skip","select","order","fetchApi","apiKey","totalCount","setSelectedData","debounceSearch","debounce","initialFetch","hasOptions","isInOptions","i","fetchIdOptions","fValue","v","Number","hasValue","useEffect","cancel","condition","selectedData","showGroupLabel","mergedOptions","flatMap","find","Select","onOpen","onClose","selected","fullWidth","displayEmpty","CustomDropdownIcon","padding","MenuProps","PaperProps","onScroll","style","maxHeight","maxWidth","input","OutlinedInput","endAdornment","InputAdornment","position","CircularProgress","mr","IconButton","edge","ml","Close","renderValue","selectOptions","Fragment","ChipOrPlaceholder","onDelete","chipProps","bgcolor","border","fontWeight","handleSearch","text","justifyContent","width"],"mappings":"msCA2GA,MAAMA,EAAoB,EACtBC,UACAC,WACAC,cACAC,kBACAC,SACAC,QACAC,cACAC,cACAC,eACAC,aAAY,MAEZ,MAAMC,EAAgBC,GAAY,MAAAL,OAAA,EAAAA,EAAaM,SAASD,GAClDE,EAA8B,GAE/BZ,GACDY,EAAMC;iBACFC,IAACC,EAAAA,QAAA,CAASC,UAAQ,EAACC,MAAM,GAAqBC,GAAI,CAAEC,QAAS,eAAgBC,OAAQ,eAAgBC,EAAG,eAAgBC,EAAG,gBACvHC,wBAAAT,EAAAA,IAACU,EAAAA,WAAA,CAAWC,KAAK,KAAKC,MAAM,uBACxBH,wBAAAT,EAAAA,IAAC,KAAA,CAAIS,SAAAtB,OAFmB,gBAQxC,MAAM0B,EAAiBC,MAAMC,QAAQ1B,SAAUA,WAAQ2B,OAAQb,GAAUA,GAAS,GAe5Ec,EAAuB,CAACC,EAAqBC,KAC/C,MAAMC,EAAcD,EAAaE,IAAKC,GAAUA,EAAMnB,OAChDoB,EAAaT,MAAMC,QAAQF,GAAkBA,EAAiB,CAACA,GACrE,OAAOO,EAAYI,MAAOC,GAAeF,EAAW1B,SAAS4B,KAG3DC,EAAyBP,IAC3B,MAAMC,EAAcD,EAAaE,IAAKC,GAAUA,EAAMnB,OAChDoB,EAAaT,MAAMC,QAAQF,GAAkBA,EAAiB,CAACA,GACrE,OAAOO,EAAYO,KAAMF,GAAeF,EAAW1B,SAAS4B,KA0GhE,OAvGAX,MAAMC,QAAQ9B,KAAY,MAAAA,OAAA,EAAAA,EAAS2C,QAAS,IAAK,MAAA3C,GAAAA,EAAS4C,QAAQ,CAACC,EAAQC,KACvEjC,EAAMC;eACFC,EAAAA,IAACC,EAAAA,QAAA,CACGE,MAAO,MAAA2B,OAAA,EAAAA,EAAQ3B,MAEfD,SAAU8B,QAAQ,MAAAF,OAAA,EAAAA,EAAQ5B,WAAaP,EAAa,MAAAmC,OAAA,EAAAA,EAAQ3B,QAAWT,IAAcR,EACrF+C,WAAW,MAAAH,OAAA,EAAAA,EAAQI,SAAU,yBAA2B,GACxDC,QAAS,KACiB,IAAlB,MAAA9C,OAAA,EAAAA,EAAQuC,SACRpC,KAIRiB,wBAAA2B,EAAAA,KAACC,WAAIjC,GAAI,CAAEkC,QAAS,OAAQC,IAAK,GAC5B9B,SAAA,CAAAvB,GAAYE,kBACTY,EAAAA,IAACwC,EAAAA,SAAA,CACGC,QACI/C,EACMuB,EAAqBa,EAAO3B,MAAO2B,EAAO7C,SAAW,IACrD+C,QAAQlB,MAAMC,QAAQ1B,WAAWA,WAAQqD,QAAQ,MAAAZ,OAAA,EAAAA,EAAQ3B,SAAS,GAE5EwC,cACIjD,GAAagC,EAAsBI,EAAO7C,SAAW,IAEzD2D,SAAU,IACNlD,EAjDD,EAACwB,EAAqBC,KAC7C,MAAMC,EAAcD,EAAaE,IAAKC,GAAUA,EAAMnB,OAChDoB,EAAaT,MAAMC,QAAQF,GAAkBA,EAAiB,CAACA,GAG/DgC,EADmBtB,EAAW1B,SAASqB,GAEvCK,EAAWP,OAAQb,GAAUA,IAAUe,IAAgBE,EAAYvB,SAASM,IAC5E,mBAAI,IAAI2C,IAAI,IAAIvB,EAAYL,KAAgBE,KAElD,MAAA3B,GAAAA,EAAeoD,IAyCeE,CAAmBjB,EAAO3B,MAAO2B,EAAO7C,SAAW,IACnD,MAAAQ,OAAA,EAAAA,EAAeqC,EAAO3B;eAIxCH,EAAAA,IAACU,EAAAA,WAAA,CACGC,KAAK,KACLC,MAAM,uBACNuB,QAAS,IAAM,MAAA1C,OAAA,EAAAA,EAAeqC,EAAO3B,OAEpCM,SAAA,MAAAqB,OAAA,EAAAA,EAAQkB,YAhCZ,GAAG,MAAAlB,OAAA,EAAAA,EAAQ3B,SAAS4B,aAuC7BD,WAAQI,UAAWpB,MAAMC,QAAQ,MAAAe,OAAA,EAAAA,EAAQ7C,UACzC6C,EAAO7C,QAAQ4C,QAAQ,CAACoB,EAAKlB,KACzBjC,EAAMC;eACFC,EAAAA,IAACC,EAAAA,QAAA,CACGiD,GAAI,GAAGpB,EAAO3B,SAAS8C,EAAI9C,SAAS4B,IACpC5B,MAAO8C,EAAI9C,MACXD,SAAU8B,QAAQiB,EAAI/C,WAAaP,EAAasD,EAAI9C,OACpDC,GAAI,CAAE+C,GAAI,GACVhB,QAAS,KACiB,IAAlB,MAAA9C,OAAA,EAAAA,EAAQuC,SACRpC,KAKRiB,wBAAA2B,EAAAA,KAACC,WAAIjC,GAAI,CAAEkC,QAAS,OAAQC,IAAK,GAC5B9B,SAAA,CAAAvB,GAAYE,kBACTY,EAAAA,IAACwC,EAAAA,SAAA,CACGC,QAAST,QAAQlB,MAAMC,QAAQ1B,KAAW,MAAAA,OAAA,EAAAA,EAAQqD,QAAQO,EAAI9C,SAAS;eAG/EH,EAAAA,IAACU,EAAAA,WAAA,CACGwC,GAAI,GAAGpB,EAAO3B,SAAS8C,EAAI9C,SAAS4B,IACpCpB,KAAK,KACLC,MAAM,uBACNuB,QAAS,IAAM,MAAA1C,OAAA,EAAAA,EAAe2D,OAAOH,EAAI9C,QAExCM,SAAa,qBAATuC,MAA6B,iCAAmCC,EAAID,OAASC,EAAI9C,YAdzF,GAAG2B,EAAO3B,SAAS8C,EAAI9C,SAAS4B,WAwBrDzC,EAAM+D,eACNvD,EAAMC;sBACDsC,EAAAA,QAAA,CACG5B,SAAA;iBAAAT,IAACsD,EAAAA,QAAA,CAAQC,UAAQ;eACjBnB,EAAAA,KAACnC,EAAAA,SAASG,GAAI,CAAEmC,IAAK,GAAKJ,QAAS7C,EAAMkE,cACrC/C,SAAA;iBAAAT,IAACyD,EAAAA,QAAA,CAAIC,SAAS;eACdtB,EAAAA,KAAC1B,EAAAA,WAAA,CAAWC,KAAK,KAAKC,MAAM,uBAAuBH,SAAA,CAAA,cACnCnB,EAAM0D,cALrB,WAaZlD,EAAM8B,SAA2B,GAAhB9B,EAAM8B,QAAgB1C,IACxCY,EAAMC;eACFC,EAAAA,IAACC,EAAAA,QAAA,CAASC,UAAQ,EAAeO,8BAAV,YAMxBX,mBAGgD6D,IACvD,MAAMC,QACFA,EAAAZ,MACAA,EAAA7C,MACAA,EAAAyC,SACAA,EAAA3D,QACAA,EAAAC,SACAA,GAAW,EAAA2E,KACXA,EAAO,QAAAC,kBACPA,EAAA3E,YACAA,EAAA4E,KACAA,EAAAC,aACAA,EAAAC,QACAA,EAAAC,WACAA,GAAa,EAAAC,UACbA,EAAAC,MACAA,EAAAlE,SACAA,EAAAmE,cACAA,EAAAC,WACAA,EAAAC,gBACAA,EAAAhF,YACAA,EAAAiF,aACAA,EAAAC,cACAA,EAAAC,WACAA,EAAAC,YACAA,EAAc,CAAA,EAAAC,mBACdA,EAAAC,SACAA,EAAAC,SACAA,EAAAC,WACAA,EAAArF,UACAA,GAAY,EAAAsF,UACZA,EAAY,QAAAvF,aACZA,EAAA4D,cACAA,GAAgB,EAAAG,cAChBA,EAAAyB,iBACAA,GAAmB,EAAAC,eACnBA,GACAvB,GAEGwB,EAAaC,IAAkBC,EAAAA,SAAS,KACxCC,GAASC,IAAcF,EAAAA,UAAkB,IACzCG,GAAgBC,IAAcJ,EAAAA,SAAoB,KAClDK,GAAiBC,IAAsBN,EAAAA,SAAoB,KAC3DO,GAAgBC,IAAqBR,EAAAA,UAAS,IAC9CS,GAAgBC,IAAqBV,EAAAA,UAAS,IAC9CW,GAAgBC,IAAqBZ,EAAAA,UAAS,IAC9Ca,GAAMC,IAAWd,EAAAA,UAAS,IAC1Be,GAAYC,IAAiBhB,EAAAA,SAAc,OAC5CiB,EAAEA,IAAMC,oBAGPC,GAAYC,IAAiBpB,WAA2B,CAC3DqB,KAAM,EACNC,SAAS,EACTC,eAAe,EACfC,MAAO,KAGLC,MAAEA,IAAUC,gBACZC,GAAQ,GAERC,GAAoBC,EAAAA,QAAQ,IACvBhD,IAAgBD,IAAYiB,EACpC,CAAChB,EAAYD,EAASiB,IAGnBiC,GAAuBC,EAAAA,YAAY,CAACC,EAAoBlH,KAC1D,IAAKkH,EAAY,OAAOpI,GAAW,GAEnC,MAAMqI,EAAuBD,EAAWE,cAElCC,EAAkB9H,GAClB,MAAAT,OAAA,EAAAA,EAASwI,OAAO,CAACC,EAAgBzE,WAC/B,MAAM0E,EAAkB,OAAAC,EAAA3E,EAAIhE,cAAJ,EAAA2I,EAAa5G,OAAQ6G,IACzC,MAAM7E,EAAQ8E,EAAAA,QAAMC,eAAeF,EAAK7E,OAAS6E,EAAKG,YAAc5E,OAAOyE,EAAK7E,OAChF,OAAOA,MAAAA,OAAAA,EAAAA,EAAOuE,cAAc1H,SAASyH,KAOzC,aAJIK,WAAiB/F,SACjB8F,EAAI3H,KAAK,IAAKkD,EAAKhE,QAAS0I,IAGzBD,GACR,MAAO,IACR,MAAAzI,OAAA,EAAAA,EAAS+B,OAAQiC,IACf,MAAMD,EAAQ8E,EAAAA,QAAMC,eAAe9E,EAAID,OAASC,EAAI+E,YAAc5E,OAAOH,EAAID,OAC7E,OAAOA,MAAAA,OAAAA,EAAAA,EAAOuE,cAAc1H,SAASyH,OACnC,GAEV,OAAOW,GAAqBT,EAAiBrH,IAE9C,CAAClB,EAASS,IAGPF,GAAc,KAChB,MAAAoD,GAAAA,EAAW,CAAEsF,OAAQ,CAAE/H,MAAOjB,EAAW,GAAK,QAC1CqF,GAA8C,mBAApBA,GAC1BA,EAAgB,OAKlB4D,GAAmBf,cAAagB,GACZ,IACf,IAAIC,IAAI,MAAAD,OAAA,EAAAA,EAAM/G,IAAIwG,GAAQ,CAACA,EAAK1H,MAAO0H,KAAQxI,UAGvD,IAGG4I,GAAuBb,EAAAA,YAAY,CAACkB,EAAwBnI,KAC9D,MAAMU,EAAiBC,MAAMC,QAAQZ,GAASA,EAAQ,CAACA,GAKvD,OAJoBoI,EAAAA,OAAOD,EAAcT,IACrC,MAAM9F,EAAQlB,EAAe6B,QAAQmF,EAAK3E,IAAM2E,EAAK1H,OACrD,WAAO4B,EAAeyG,IAAWzG,KAGtC,IAGGyF,GAAkBN,EAAAA,QAAQ,IACxBD,GACOE,GAAqBhC,EAAahF,GAEtC8H,GAAqBE,GAAiB,IAAI3C,MAAmBE,KAAmBvF,GAExF,CAACgF,EAAaK,GAAgBvG,EAASkB,EAAO8G,GAAmBvB,GAAiByB,GAAsBc,GAAsBE,KAG3HM,GAAerB,cAAasB,IAC9B,MAAMC,UAAEA,EAAAC,aAAWA,EAAAC,aAAcA,GAAiBH,EAAMI,cAGxD,GAFiBF,EAAeD,GAAaE,EAAe,IAE5CrC,GAAWG,UAAYH,GAAWI,gBAAkBK,GAAmB,CACnF,MAAM8B,EAAWvC,GAAWE,KAAO,EACnCsC,GAAa7D,EAAad,EAAe0E,GAAU,EACvD,GAED,CAACvC,GAAWG,QAASH,GAAWI,cAAeJ,GAAWE,KAAMO,GAAmB9B,EAAa8D,KAAKC,UAAU7E,KAG5G8E,GAAgB/B,EAAAA,YAAY,CAACgC,EAAuBC,GAAS,KAC/D,MACMC,EAAgBnB,GAAiB,IADpBkB,EAAS7D,GAAiBE,MACa0D,IAC1D3D,GAAW6D,IACZ,CAAC9D,GAAgBE,GAAiByC,KAG/Ba,GAAe5B,EAAAA,YAAYmC,MAAOlC,EAAkB,GAAImC,EAAUnF,EAAeqC,EAAO,EAAG2C,GAAS,KAEtG,IAAKpF,IAAYiB,QAAuB,GAExCK,IAAW,GACPmB,EAAO,GACPD,WAA4BgD,EAAM7C,eAAe,KAGrD,IACI,IAAIwB,EAAkB,GAClBsB,EAA4C,CAAA,EAGhD,GAAIxE,EAAgB,CAChB,MAAMyE,QAAiBzE,EAAe,CAClC0E,OAAQvC,EACRmC,UACAxC,SACA6C,MAAOnD,EAAO,GAAKM,GACnB8C,OAAQxF,EACRyF,MAAO/E,IAEXoD,GAAO,MAAAuB,OAAA,EAAAA,EAAUvB,OAAQ,GACzBsB,GAAmB,MAAAC,OAAA,EAAAA,EAAUnD,aAAc,CAAA,CAC/C,KAAO,CACH,MAAMmD,QAAiBK,WAAS,CAC5BC,OAAQhG,EACRuF,QAAS,CACLxC,SACA6C,MAAOnD,EAAO,GAAKM,GACnB4C,OAAQvC,EACRmC,UACAM,OAAQxF,EACRyF,MAAO/E,GAEXH,WACAC,aAEJsD,GAAO,MAAAuB,OAAA,EAAAA,EAAUvB,OAAQ,GACzBsB,GAAmB,MAAAC,OAAA,EAAAA,EAAUnD,aAAc,CAAA,CAC/C,CAmBA,OAjBI4B,GAAQtH,MAAMC,QAAQqH,KACtBe,GAAcf,EAAMiB,GAGpB5C,GAAcgD,IAAA,IACPA,EACH/C,OACAC,UAAU,MAAA+C,OAAA,EAAAA,EAAkBQ,aAAc,GAAMxD,EAAOM,GACvDH,aAAO6C,WAAkBQ,aAAc,EACvCtD,eAAe,MAGf,MAAAwB,OAAA,EAAAA,EAAMxG,QAAS,GACfuI,MAID/B,GAAQ,EACnB,OAAShE,GAGL,OADAqC,WAA4BgD,EAAM7C,eAAe,KAC1C,EACX,CAAA,QACIrB,IAAW,EACf,GAED,CAACtB,EAASiB,EAAgBZ,EAAYU,EAAWgC,GAAOmC,KAGrDiB,GAAiBlD,EAAAA,QACnB,IAAMmD,EAAAA,SAASd,MAAOlC,IACd/B,KAEC+B,GAAeJ,KAAqBjB,KACrCS,GAAc,CACVC,KAAM,EACNC,SAAS,EACTC,eAAe,EACfC,MAAO,UAELmC,GAAa,GAAI3E,EAAe,GAAG,KAEzC,MAAAgD,OAAA,EAAAA,EAAYzF,QAAS,IAAMqF,KAC3BR,GAAc,CACVC,KAAM,EACNC,SAAS,EACTC,eAAe,EACfC,MAAO,UAELmC,GAAa3B,EAAYhD,EAAe,GAAG,MAEtD,KAEH,CAAC4C,GAAmBjB,GAAgBiD,KAAKC,UAAU7E,KAIjDiG,GAAelD,EAAAA,YAAYmC,YACXN,KAAKC,UAAU7E,KAAmB4E,KAAKC,UAAU9C,MAEjDa,IAAsBrB,KACpCS,GAAchC,GACdoB,GAAW,IACXI,IAAkB,GAClBY,GAAc,CACVC,KAAM,EACNC,SAAS,EACTC,eAAe,EACfC,MAAO,KAIVI,IAAsBrB,WACjBoD,GAAa7D,EAAad,EAAe,GAAG,GAClDwB,IAAkB,KAGvB,CAACoD,KAAKC,UAAU7E,GAAgB4C,GAAmBrB,KAGhDuE,GAAkB/C,EAAAA,YAAY,KAChC,IAAImD,GAAa,EACjB,MAAMC,EAAc,MAAAhD,QAAA,EAAAA,GAAiBxG,OAAQyJ,GACzCvL,EAAW,MAAAiB,OAAA,EAAAA,EAAON,SAAS,MAAA4K,OAAA,EAAAA,EAAGtK,cAASsK,WAAGtK,QAASA,GAQvD,OALKW,MAAMC,QAAQyJ,KAAgB,MAAAA,OAAA,EAAAA,EAAa5I,QAAS,IACrD,MAAA2C,GAAAA,EAAkBrF,EAAWsL,EAAcA,EAAY,IACvDD,GAAa,GAGVA,GACR,CAACtB,KAAKC,UAAU1B,IAAkBrH,EAAOjB,IAGtCwL,GAAiBtD,EAAAA,YAAYmC,UAC/B,SAAUY,KAAmB,OAC7B,GAAIjE,GAAM,OAEV,MAAMyE,EAASzL,EAAWiB,IAAS,MAAAA,OAAA,EAAAA,EAAOa,OAAO4J,GAAK5I,QAAQ6I,OAAOD,MAAOzK,GAAgB,MACzEjB,GAAW,MAAAyL,OAAA,EAAAA,EAAQ/I,QAAS,EAAI+I,KAAY1D,KAG3DlB,IAAkB,SACZiD,GAAa,GAAI,IAAK3E,EAAoB,SAAUsG,GAAY,GAAG,GACzE5E,IAAkB,KAGvB,CAACG,GAAM/F,EAAO8I,KAAKC,UAAU7E,KAE1ByG,GAAW5L,EACX4B,MAAMC,QAAQZ,IAAUA,EAAMyB,OAAS,EACvCzB,SAAmD,KAAVA,EAG/C4K,EAAAA,UAAU,KACF7E,IACAkE,GAAejF,GAEZ,IAAMiF,GAAeY,UAE7B,CAAC7F,EAAa8D,KAAKC,UAAU7E,GAAgB6B,GAAMN,GAAgBwE,KAEtEW,EAAAA,UAAU,KACNZ,MACD,CAACA,KAEJY,EAAAA,UAAU,KACNL,MACD,CAACA,KAEJK,EAAAA,UAAU,KACF7E,IACAoE,MAEL,CAACpE,GAAMoE,KAEVS,EAAAA,UAAU,KACN,MAAME,EAAYhC,KAAKC,UAAU7E,KAAmB4E,KAAKC,UAAU9C,IAC/D/B,GAAiB4G,GACjBpF,IAAkB,IAEvB,CAACxB,EAAe+B,KAEnB2E,EAAAA,UAAU,KACN,GAAI5K,IAAU+F,GAAM,CAChB,MAAMgF,GAAe,MAAAjM,OAAA,EAAAA,EAAS+B,OAAQyJ,GAClCvL,EAAW,MAAAiB,OAAA,EAAAA,EAAON,SAAS,MAAA4K,OAAA,EAAAA,EAAGtK,cAASsK,WAAGtK,QAASA,KAClD,GACLwF,GAAmBuF,EACvB,CACAvF,GAAmB,MAAA6B,QAAA,EAAAA,GAAiBxG,OAAQyJ,GACxCvL,EAAW,MAAAiB,OAAA,EAAAA,EAAON,SAAS,MAAA4K,OAAA,EAAAA,EAAGtK,cAASsK,WAAGtK,QAASA,KAGxD,CAACA,EAAO+F,GAAMjH,EAASC,IAE1B,MAkBMiM,GAAkBtD,UACpB,WAAKA,WAAMjG,QACP,OAEJ,MAAMwJ,EAAgB,MAAAvD,OAAA,EAAAA,EAAMwD,QAASZ,GAAW,MAAAA,OAAA,EAAAA,EAAGxL,SACnD,OAAO,OAAA2I,mBAAe0D,KAAMxJ,IAAgB,MAAAA,OAAA,EAAAA,EAAQ3B,SAAUA,SAAvD,EAAAyH,EAA+D5E;AAG1E,OACIZ,EAAAA,KAACmJ,EAAAA,OAAA,CACG3H,UACAG,OACAC,aAAcA,IAAiB9E,EAAW,GAAK,IAC/CC,cACA8C,UAAU,gBACV4B,OACA2H,OAAQ,IAAMrF,IAAQ,GACtBsF,QAAS,KACLtF,IAAQ,IACJ,MAAAhB,OAAA,EAAAA,EAAavD,QAAS,GACtBiE,IAAkB,GAEtBI,IAAkB,GAClBb,GAAe,KAEnBxC,SA3CgB8F,IACpB,MAAQvI,MAAAA,GAAUuI,EAAMR,OACxB,GAAKhJ,GAAY4B,MAAMC,QAAQZ,IAA0C,IAAhCA,MAAAA,OAAAA,EAAAA,EAAOa,OAAO4J,GAAKA,GAAGhJ,UAAiBzB,EAAO,OAEvF,MAIMuL,QAAWlE,aAAiBxG,OAJd6G,GACT3I,EAAWiB,MAAAA,OAAAA,EAAAA,EAAON,SAAS,MAAAgI,OAAA,EAAAA,EAAM1H,cAAS0H,WAAM1H,SAAUA,GAIrE,MAAAyC,GAAAA,EAAW8F,EAAOxJ,EAAWwM,EAAW,MAAAA,OAAA,EAAAA,EAAW,IACnD,MAAAnH,GAAAA,EAAkBrF,EAAWwM,EAAW,MAAAA,OAAA,EAAAA,EAAW,KAkC/CzG,mBACA/F,WACA8D,MAAOsD,GAAEtD,GACT2I,WAAS,EACTC,cAAY,EACZzH,YACAC,MAAOpC,QAAQoC,GACflE,WACAC,MAAO2F,GAAkB5G,EAAW,GAAK,IAAM,MAAAiB,OAAA,EAAAA,EAAO+C,KAAM/C,IAAUjB,EAAW,GAAK,IACtF4E,oBACA+H,mBAAoBjH,EACpBxE,GAAKlB,IAAY,MAAAiB,OAAA,EAAAA,EAAOyB,QAAU,IAAK+C,EAAa,sBAAuB,CAAEmH,QAAS,qBAAyBnH,EAC/GoH,UAAW,CACPC,WAAY,CACRC,SAAUxD,GACVyD,MAAO,CAAEC,UAAW,IAAKC,SAAU,OAG3CC,MACKnM,OA2BG,iBA1BAF,EAAAA,IAACsM,EAAAA,QAAA,CACGtJ,MAAM,GACN5C,GAAI2E,EACJwH,4BACIvM,EAAAA,IAACwM,EAAAA,QAAA,CAAeC,SAAS,MACpBhM,aAAWiE,iBACR1E,EAAAA,IAAC0M,EAAAA,QAAA,CACG7I,KAAM,GACNzD,GAAI,CAAEuM,GAAI,EAAG/L,MAAO,aAGxBqE,GAAoB6F,mBAChB9K,EAAAA,IAAC4M,EAAAA,QAAA,CACG,aAAW,kBACXzK,QAAS3C,GACTqN,KAAK,MACLzM,GAAI0G,GAAQ,CAAEgG,GAAI,KAAQ,CAAEH,GAAI,KAChC9I,KAAK,QAELpD,wBAAAT,EAAAA,IAAC+M,QAAA,CAAMrJ,SAAS,QAAQ9C,MAAM,4BAS9DoM,YAActB,UA9EEuB;AA+EZ,OACIjN,EAAAA,IAAAkN,EAAAA,SAAA,CACKzM,SAAAK,MAAMC,QAAQ2K,kBACX1L,EAAAA,IAACmN,EAAAA,QAAA,CACG1I,gBACA2D,MApFJ6E,EAoFyBvB,EAnFtC5K,MAAMC,QAAQkM,KAAkB,MAAAA,OAAA,EAAAA,EAAerL,QAAS,IAAK,MAAAqL,OAAA,EAAAA,EAAejM,OAAQc,GAAWA,KAoF9E3C,cACAiO,SAAU5I,EACVtE,WACAmN,UAAW,CACPjN,GAAI,CACAkN,QAAS,oBACTC,OAAQ,EAER,yBAA0B,CACtB3M,MAAO,oBACP4M,WAAY,WAM5B9N,EAAYyL,GAAe3D,IACvB1G,MAAMC,QAAQyG,MAAoB,MAAAA,QAAA,EAAAA,GAAiB5F,QAAS,IAAK,OAAAgG,EAAA,MAAAJ,QAAA,EAAAA,GAAiB8D,KAC7ExJ,IAAgB,MAAAA,OAAA,EAAAA,EAAQ3B,QAASA,SAD2B,EAAAyH,EAE9D5E,QAAS0I,GAAYvM,KAK5CsO,aAAeC,IACXtI,GAAesI,GACfzH,IAAkB,IAGrBxF,SAAA,CAAAzB,EAAkB,CACfC,QAASuI,GACTtI,SAAU8C,QAAQ9C,GAClBC,cACAE,OAAQc,EACRf,iBAAiB,EACjBE,MAAO,CAEH+D,gBACAG,gBACAR,SAEJzD,cACAC,eACAC,eACAC,cAGH8G,GAAWI,8BACR5G,MAACC,EAAAA,QAAA,CAASC,UAAQ,EACdO,0BAAAT,IAACqC,EAAAA,QAAA,CAAIjC,GAAI,CAAEkC,QAAS,OAAQqL,eAAgB,SAAUC,MAAO,QACzDnN,8BAACiM,EAAAA,QAAA,CAAiB7I,KAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/select/controller/chip-or-placeholder.tsx"],"sourcesContent":["import { Close } from \"@mui/icons-material\";\
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/select/controller/chip-or-placeholder.tsx"],"sourcesContent":["import { Close } from \"@mui/icons-material\";\nimport { ChipProps } from \"@mui/material\";\nimport Chip from \"../../chip/chip\";\nimport Typography from \"../../typography/typography\";\n\ninterface ChipOrPlaceholderProps {\n data: string[];\n placeholder: string;\n onDelete?: () => void;\n chipProps?: Omit<ChipProps, \"label\">;\n}\n\nconst ChipOrPlaceholder: React.FC<ChipOrPlaceholderProps> = ({\n data,\n placeholder,\n onDelete,\n chipProps,\n}) => (\n <>\n {data.length ? (\n <Chip\n variant=\"outlined\"\n type=\"normal\"\n label={`${data.length} Selected`}\n deleteIcon={<Close fontSize=\"large\" />}\n onDelete={onDelete}\n onMouseDown={(event) => event.stopPropagation()}\n {...chipProps}\n />\n ) : (\n <Typography color=\"inherit\" type=\"s3\">\n {placeholder}\n </Typography>\n )}\n </>\n);\n\nexport default ChipOrPlaceholder;\n"],"names":[],"mappings":";;;;AAYA,MAAM,oBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,oBAAA,UAAA,EACG,eAAK,SACJ;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAO,GAAG,KAAK,MAAM;AAAA,IACrB,YAAY,oBAAC,OAAA,EAAM,UAAS,QAAA,CAAQ;AAAA,IACpC;AAAA,IACA,aAAa,CAAC,UAAU,MAAM,gBAAA;AAAA,IAC7B,GAAG;AAAA,EAAA;AACN,wBAEC,YAAA,EAAW,OAAM,WAAU,MAAK,MAC9B,uBACH,EAAA,CAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/select/controller/chip-or-placeholder.tsx"],"sourcesContent":["import { Close } from \"@mui/icons-material\";\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/select/controller/chip-or-placeholder.tsx"],"sourcesContent":["import { Close } from \"@mui/icons-material\";\nimport { ChipProps } from \"@mui/material\";\nimport Chip from \"../../chip/chip\";\nimport Typography from \"../../typography/typography\";\n\ninterface ChipOrPlaceholderProps {\n data: string[];\n placeholder: string;\n onDelete?: () => void;\n chipProps?: Omit<ChipProps, \"label\">;\n}\n\nconst ChipOrPlaceholder: React.FC<ChipOrPlaceholderProps> = ({\n data,\n placeholder,\n onDelete,\n chipProps,\n}) => (\n <>\n {data.length ? (\n <Chip\n variant=\"outlined\"\n type=\"normal\"\n label={`${data.length} Selected`}\n deleteIcon={<Close fontSize=\"large\" />}\n onDelete={onDelete}\n onMouseDown={(event) => event.stopPropagation()}\n {...chipProps}\n />\n ) : (\n <Typography color=\"inherit\" type=\"s3\">\n {placeholder}\n </Typography>\n )}\n </>\n);\n\nexport default ChipOrPlaceholder;\n"],"names":["data","placeholder","onDelete","chipProps","jsx","Fragment","children","length","Chip","variant","type","label","deleteIcon","Close","fontSize","onMouseDown","event","stopPropagation","Typography","color"],"mappings":"kSAY4D,EAC1DA,OACAC,cACAC,WACAC,8BAEAC,EAAAA,IAAAC,EAAAA,SAAA,CACGC,WAAKC,sBACJH,EAAAA,IAACI,EAAAA,KAAA,CACCC,QAAQ,WACRC,KAAK,SACLC,MAAO,GAAGX,EAAKO,kBACfK,4BAAYR,IAACS,EAAAA,QAAA,CAAMC,SAAS,UAC5BZ,WACAa,YAAcC,GAAUA,EAAMC,qBAC1Bd,yBAGLe,aAAA,CAAWC,MAAM,UAAUT,KAAK,KAC9BJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/select/select.tsx"],"sourcesContent":["/* eslint-disable no-mixed-spaces-and-tabs */\
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/select/select.tsx"],"sourcesContent":["/* eslint-disable no-mixed-spaces-and-tabs */\n\nimport {\n Box,\n\tCircularProgress,\n\tFormHelperText,\n\tSelect as MUISelect,\n\tstyled\n} from '@mui/material';\nimport Typography from '../typography/typography';\nimport SelectSearch from './select-search';\nimport { memo, useRef } from 'react';\nimport './controller/controller-select.scss'\nimport { ArrowDown } from '../icons';\nconst StyledSelect = styled(MUISelect)(({ theme: { palette } }) => ({\n\tcolor: palette.theme?.secondary[800],\n\tfontSize: ' 0.875rem',\n\t'.MuiOutlinedInput-notchedOutline': {\n\t\tborderColor: palette.theme?.secondary[300]\n\t},\n\t'&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n\t\tborderWidth: '0.0625rem',\n\t\tborderColor: palette.theme?.primary[700]\n\t},\n\t'&.Mui-focused.Mui-error .MuiOutlinedInput-notchedOutline': {\n\t\tborderWidth: '0.0625rem',\n\t\tborderColor: palette.theme?.error[600]\n\t},\n\t'&:hover .MuiOutlinedInput-notchedOutline': {\n\t\tborderColor: palette.theme?.secondary[400]\n\t},\n\t'&.Mui-error:hover .MuiOutlinedInput-notchedOutline': {\n\t\tborderColor: palette.theme?.error[600]\n\t},\n\t'&.Mui-disabled': {\n\t\tbackground: palette.theme?.secondary[200],\n\t\tcolor: palette.theme?.secondary[800]\n\t},\n\n\t'.MuiMenuItem-root': {\n\t\tfontSize: '10px'\n\t},\n\t'&.Mui-error': {\n\t\tcolor: palette.theme?.error[600],\n\t\t'&fieldset': {\n\t\t\tborderColor: 'grey'\n\t\t}\n\t}\n}));\n\nconst Select = memo((props: any) => {\n\tconst searchInputRef = useRef<HTMLInputElement>(null);\n\tconst {\n\t\tchildren,\n\t\tlabel,\n\t\thandleSearch,\n\t\tdataPosition,\n\t\tdataName,\n\t\tplaceholder,\n\t\tsearchPlaceholder,\n\t\trequired,\n\t\tsearchValue,\n\t\tfullWidth = false,\n\t\tonChange,\n\t\trenderValue,\n\t\terror,\n\t\thelperText,\n\t\tloading = false,\n\t\tCustomDropdownIcon = ArrowDown,\n\t\t...rest\n\t} = props;\n\n\t\n\tconst handleOpen = () => {\n setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus(); // Focus the search input\n }\n }, 0);\n };\n\n\n\treturn (\n\t\t<>\n\t\t\t{label && (\n\t\t\t\t<Typography\n\t\t\t\t\ttype='s5'\n\t\t\t\t\tweight='medium'\n\t\t\t\t\tdata-position={dataPosition}\n\t\t\t\t\tdata-name={dataName}\n\t\t\t\t\tmb={0.5}\n\t\t\t\t\tcolor={error ? 'theme.error.600' : 'theme.secondary.800'}>\n\t\t\t\t\t{label} {required && <span style={{ color: '#c64d4d' }}>*</span>}\n\t\t\t\t</Typography>\n\t\t\t)}\n<StyledSelect\n IconComponent={(iconProps) => <CustomDropdownIcon {...iconProps} fontSize='small' />}\n MenuProps={{\n PaperProps: {\n sx: {\n maxHeight: 300, // Scrollable area for dropdown\n overflowY: 'auto',\n },\n },\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'center',\n },\n }}\n displayEmpty\n fullWidth={fullWidth}\n renderValue={\n renderValue ??\n ((value: any) =>\n value !== '' ? (\n (value as any)\n ) : (\n <Typography color='inherit' type='s3'>\n {placeholder}\n </Typography>\n ))\n }\n onChange={onChange}\n error={error}\n\tonOpen={handleOpen} \n {...rest}\n>\n {handleSearch && (\n <Box\n sx={{\n position: 'sticky',\n top: 0,\n zIndex: 1, // Ensure it's above the dropdown items\n backgroundColor: '#fff',\n // padding: '0.5rem',\n\t\t\t\tmargin: '-4px -4px 0 -4px',\n\t\t\t\tmb: 0.5\n }}\n >\n <SelectSearch\n\t\t\t\tref={searchInputRef}\n searchPlaceholder={searchPlaceholder}\n handleSearch={(e: any) => handleSearch(e.target.value)}\n value={searchValue}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tif (props?.value) {\n\t\t\t\t\t\tsetTimeout(() => searchInputRef.current?.focus(), 0); \n\t\t\t\t\t}\n\t\t \t}}\n\t\t\t\tsx={{\n\t\t\t\t\tp: 1,\n\t\t\t\t}}\n />\n </Box>\n )}\n {loading ? (\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n p: 2,\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <CircularProgress size={30} color='inherit' />\n </Box>\n ) : (\n children\n )}\n</StyledSelect>\n\n\t\t\t{helperText && <FormHelperText error={error}>{helperText}</FormHelperText>}\n\t\t</>\n\t);\n});\n\nexport { Select };\nexport default Select;\n"],"names":["MUISelect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/select/select.tsx"],"sourcesContent":["/* eslint-disable no-mixed-spaces-and-tabs */\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/select/select.tsx"],"sourcesContent":["/* eslint-disable no-mixed-spaces-and-tabs */\n\nimport {\n Box,\n\tCircularProgress,\n\tFormHelperText,\n\tSelect as MUISelect,\n\tstyled\n} from '@mui/material';\nimport Typography from '../typography/typography';\nimport SelectSearch from './select-search';\nimport { memo, useRef } from 'react';\nimport './controller/controller-select.scss'\nimport { ArrowDown } from '../icons';\nconst StyledSelect = styled(MUISelect)(({ theme: { palette } }) => ({\n\tcolor: palette.theme?.secondary[800],\n\tfontSize: ' 0.875rem',\n\t'.MuiOutlinedInput-notchedOutline': {\n\t\tborderColor: palette.theme?.secondary[300]\n\t},\n\t'&.Mui-focused .MuiOutlinedInput-notchedOutline': {\n\t\tborderWidth: '0.0625rem',\n\t\tborderColor: palette.theme?.primary[700]\n\t},\n\t'&.Mui-focused.Mui-error .MuiOutlinedInput-notchedOutline': {\n\t\tborderWidth: '0.0625rem',\n\t\tborderColor: palette.theme?.error[600]\n\t},\n\t'&:hover .MuiOutlinedInput-notchedOutline': {\n\t\tborderColor: palette.theme?.secondary[400]\n\t},\n\t'&.Mui-error:hover .MuiOutlinedInput-notchedOutline': {\n\t\tborderColor: palette.theme?.error[600]\n\t},\n\t'&.Mui-disabled': {\n\t\tbackground: palette.theme?.secondary[200],\n\t\tcolor: palette.theme?.secondary[800]\n\t},\n\n\t'.MuiMenuItem-root': {\n\t\tfontSize: '10px'\n\t},\n\t'&.Mui-error': {\n\t\tcolor: palette.theme?.error[600],\n\t\t'&fieldset': {\n\t\t\tborderColor: 'grey'\n\t\t}\n\t}\n}));\n\nconst Select = memo((props: any) => {\n\tconst searchInputRef = useRef<HTMLInputElement>(null);\n\tconst {\n\t\tchildren,\n\t\tlabel,\n\t\thandleSearch,\n\t\tdataPosition,\n\t\tdataName,\n\t\tplaceholder,\n\t\tsearchPlaceholder,\n\t\trequired,\n\t\tsearchValue,\n\t\tfullWidth = false,\n\t\tonChange,\n\t\trenderValue,\n\t\terror,\n\t\thelperText,\n\t\tloading = false,\n\t\tCustomDropdownIcon = ArrowDown,\n\t\t...rest\n\t} = props;\n\n\t\n\tconst handleOpen = () => {\n setTimeout(() => {\n if (searchInputRef.current) {\n searchInputRef.current.focus(); // Focus the search input\n }\n }, 0);\n };\n\n\n\treturn (\n\t\t<>\n\t\t\t{label && (\n\t\t\t\t<Typography\n\t\t\t\t\ttype='s5'\n\t\t\t\t\tweight='medium'\n\t\t\t\t\tdata-position={dataPosition}\n\t\t\t\t\tdata-name={dataName}\n\t\t\t\t\tmb={0.5}\n\t\t\t\t\tcolor={error ? 'theme.error.600' : 'theme.secondary.800'}>\n\t\t\t\t\t{label} {required && <span style={{ color: '#c64d4d' }}>*</span>}\n\t\t\t\t</Typography>\n\t\t\t)}\n<StyledSelect\n IconComponent={(iconProps) => <CustomDropdownIcon {...iconProps} fontSize='small' />}\n MenuProps={{\n PaperProps: {\n sx: {\n maxHeight: 300, // Scrollable area for dropdown\n overflowY: 'auto',\n },\n },\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'center',\n },\n }}\n displayEmpty\n fullWidth={fullWidth}\n renderValue={\n renderValue ??\n ((value: any) =>\n value !== '' ? (\n (value as any)\n ) : (\n <Typography color='inherit' type='s3'>\n {placeholder}\n </Typography>\n ))\n }\n onChange={onChange}\n error={error}\n\tonOpen={handleOpen} \n {...rest}\n>\n {handleSearch && (\n <Box\n sx={{\n position: 'sticky',\n top: 0,\n zIndex: 1, // Ensure it's above the dropdown items\n backgroundColor: '#fff',\n // padding: '0.5rem',\n\t\t\t\tmargin: '-4px -4px 0 -4px',\n\t\t\t\tmb: 0.5\n }}\n >\n <SelectSearch\n\t\t\t\tref={searchInputRef}\n searchPlaceholder={searchPlaceholder}\n handleSearch={(e: any) => handleSearch(e.target.value)}\n value={searchValue}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tif (props?.value) {\n\t\t\t\t\t\tsetTimeout(() => searchInputRef.current?.focus(), 0); \n\t\t\t\t\t}\n\t\t \t}}\n\t\t\t\tsx={{\n\t\t\t\t\tp: 1,\n\t\t\t\t}}\n />\n </Box>\n )}\n {loading ? (\n <Box\n sx={{\n display: 'flex',\n width: '100%',\n p: 2,\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <CircularProgress size={30} color='inherit' />\n </Box>\n ) : (\n children\n )}\n</StyledSelect>\n\n\t\t\t{helperText && <FormHelperText error={error}>{helperText}</FormHelperText>}\n\t\t</>\n\t);\n});\n\nexport { Select };\nexport default Select;\n"],"names":["StyledSelect","styled","MUISelect","theme","palette","color","_a","secondary","fontSize","borderColor","_b","borderWidth","_c","primary","_d","error","_e","_f","background","_g","_h","_i","Select","memo","props","searchInputRef","useRef","children","label","handleSearch","dataPosition","dataName","placeholder","searchPlaceholder","required","searchValue","fullWidth","onChange","renderValue","helperText","loading","CustomDropdownIcon","ArrowDown","rest","jsxs","Fragment","Typography","type","weight","mb","style","IconComponent","iconProps","jsx","MenuProps","PaperProps","sx","maxHeight","overflowY","anchorOrigin","vertical","horizontal","displayEmpty","value","onOpen","setTimeout","current","focus","Box","position","top","zIndex","backgroundColor","margin","SelectSearch","ref","e","target","onClick","stopPropagation","onKeyDown","p","display","width","justifyContent","alignItems","CircularProgress","size","FormHelperText"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/select/select-search.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/select/select-search.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-imports */\nimport { InputAdornment, TextField, styled } from \"@mui/material\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport React, { forwardRef } from 'react';\n\nconst StyledSearch = styled(TextField)(({ theme: { palette } }) => ({\n padding: \"0rem 0.75rem 0.5rem 0.75rem\",\n borderBottom: `1px solid ${palette.theme?.secondary[200]}`,\n input: {\n padding: \"0.5rem 0rem\",\n },\n \".MuiOutlinedInput-notchedOutline\": {\n border: 0,\n },\n \"& .MuiOutlinedInput-root\": {\n fontSize: \"0.8125rem\",\n paddingLeft: \"0.5rem\",\n color: palette.theme?.secondary[800],\n // backgroundColor: palette.theme?.secondary[200],\n border: \"1px solid #F5F6F5\",\n borderRadius: \"0.5rem\",\n \":hover .MuiOutlinedInput-notchedOutline\": {\n border: 1,\n },\n \"&.Mui-focused fieldset\": {\n border: 0,\n },\n },\n}));\n\nconst SelectSearch = forwardRef<HTMLInputElement, any>(\n ({ searchPlaceholder, handleSearch, value, ...rest }, ref) => (\n <StyledSearch\n inputRef={ref} // Attach the ref here for focusing\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n value={value}\n fullWidth\n variant=\"outlined\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon fontSize=\"small\" />\n </InputAdornment>\n ),\n }}\n {...rest}\n />\n )\n);\n\nexport { SelectSearch };\nexport default SelectSearch;\n"],"names":["SearchIcon"],"mappings":";;;;;;AAMA,MAAM,eAAe,OAAO,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAA,QAAU;;AAAO;AAAA,IAClE,SAAS;AAAA,IACT,cAAc,cAAa,aAAQ,UAAR,mBAAe,UAAU,IAAI;AAAA,IACxD,OAAO;AAAA,MACL,SAAS;AAAA,IAAA;AAAA,IAEX,oCAAoC;AAAA,MAClC,QAAQ;AAAA,IAAA;AAAA,IAEV,4BAA4B;AAAA,MAC1B,UAAU;AAAA,MACV,aAAa;AAAA,MACb,QAAO,aAAQ,UAAR,mBAAe,UAAU;AAAA;AAAA,MAEhC,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,2CAA2C;AAAA,QACzC,QAAQ;AAAA,MAAA;AAAA,MAEV,0BAA0B;AAAA,QACxB,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,EAEJ;AAAA,CAAE;AAEF,MAAM,eAAe;AAAA,EACnB,CAAC,EAAE,mBAAmB,cAAc,OAAO,GAAG,KAAA,GAAQ,QACpD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,aAAa;AAAA,MACb,UAAU;AAAA,MACV;AAAA,MACA,WAAS;AAAA,MACT,SAAQ;AAAA,MACR,YAAY;AAAA,QACV,oCACG,gBAAA,EAAe,UAAS,SACvB,UAAA,oBAACA,WAAA,EAAW,UAAS,QAAA,CAAQ,EAAA,CAC/B;AAAA,MAAA;AAAA,MAGH,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|