@erpsquad/common 1.8.80 → 1.8.81
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 +2 -4
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +4 -2
- package/dist/_virtual/index/index.esm3.js.map +1 -1
- package/dist/_virtual/index/index.esm4.js +1 -1
- package/dist/_virtual/index/index.esm5.js +3 -3
- package/dist/_virtual/index/index.esm6.js +3 -3
- package/dist/_virtual/index/index.esm7.js +3 -3
- package/dist/_virtual/index/index.esm8.js +3 -3
- package/dist/_virtual/index/index.esm9.js +3 -3
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/_virtual/index/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 +1 -0
- package/dist/components/filter/components/delete-group/index.esm.js.map +1 -1
- package/dist/components/filter/components/delete-group/index.js +1 -1
- package/dist/components/filter/components/delete-group/index.js.map +1 -1
- package/dist/components/filter/filter/index.esm.js +1 -1
- package/dist/components/filter/filter/index.esm.js.map +1 -1
- package/dist/components/filter/filter/index.js +7 -7
- package/dist/components/filter/filter/index.js.map +1 -1
- package/dist/components/footer/footer.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/components/header/header/index.esm.js.map +1 -1
- package/dist/components/header/header/index.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.js +1 -1
- package/dist/components/header/redux/actionCreator/index.js.map +1 -1
- package/dist/components/icons/action/index.esm.js.map +1 -1
- package/dist/components/icons/action/index.js.map +1 -1
- package/dist/components/icons/action-arrow.d.ts +3 -3
- package/dist/components/icons/add-circle.d.ts +3 -3
- package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/components/icons/arrow-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/components/icons/assignments.d.ts +3 -3
- package/dist/components/icons/blank-circle.d.ts +3 -3
- package/dist/components/icons/block-filled.d.ts +3 -3
- package/dist/components/icons/calendar-add.d.ts +3 -3
- package/dist/components/icons/calendar.d.ts +3 -3
- package/dist/components/icons/checkbox-square.d.ts +3 -3
- package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/components/icons/clock.d.ts +3 -3
- package/dist/components/icons/close.d.ts +3 -3
- package/dist/components/icons/coin-outline.d.ts +3 -3
- package/dist/components/icons/copy.d.ts +3 -3
- package/dist/components/icons/coupon.d.ts +3 -3
- package/dist/components/icons/criteria/index.esm.js.map +1 -1
- package/dist/components/icons/criteria/index.js.map +1 -1
- package/dist/components/icons/cross/index.esm.js.map +1 -1
- package/dist/components/icons/cross/index.js.map +1 -1
- package/dist/components/icons/cross-hire.d.ts +3 -3
- package/dist/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/components/icons/dashboard.d.ts +3 -3
- package/dist/components/icons/document-download.d.ts +3 -3
- package/dist/components/icons/document.d.ts +3 -3
- package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/components/icons/dollar-circle.d.ts +3 -3
- package/dist/components/icons/edit.d.ts +3 -3
- package/dist/components/icons/email.d.ts +3 -3
- package/dist/components/icons/export.d.ts +3 -3
- package/dist/components/icons/eye-off.d.ts +3 -3
- package/dist/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/components/icons/eye.d.ts +3 -3
- package/dist/components/icons/filled-circle.d.ts +3 -3
- package/dist/components/icons/filter-remove.d.ts +3 -3
- package/dist/components/icons/filter.d.ts +3 -3
- package/dist/components/icons/folder-save.d.ts +3 -3
- package/dist/components/icons/grid.d.ts +3 -3
- package/dist/components/icons/hashtag.d.ts +3 -3
- package/dist/components/icons/image.d.ts +3 -3
- package/dist/components/icons/import.d.ts +3 -3
- package/dist/components/icons/info-circle.d.ts +3 -3
- package/dist/components/icons/info.d.ts +3 -3
- package/dist/components/icons/link-horizontal.d.ts +3 -3
- package/dist/components/icons/link.d.ts +3 -3
- package/dist/components/icons/location.d.ts +3 -3
- package/dist/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/components/icons/lowest-price.d.ts +3 -3
- package/dist/components/icons/more.d.ts +3 -3
- package/dist/components/icons/notification.d.ts +3 -3
- package/dist/components/icons/paper-clip.d.ts +3 -3
- package/dist/components/icons/paragraph.d.ts +3 -3
- package/dist/components/icons/payment-request.d.ts +3 -3
- package/dist/components/icons/phone.d.ts +3 -3
- package/dist/components/icons/printer.d.ts +3 -3
- package/dist/components/icons/process-calendar.d.ts +3 -3
- package/dist/components/icons/promotion.d.ts +3 -3
- package/dist/components/icons/radio-button.d.ts +3 -3
- package/dist/components/icons/receipt-filled.d.ts +3 -3
- package/dist/components/icons/receipt-outline.d.ts +3 -3
- package/dist/components/icons/receipt.d.ts +3 -3
- package/dist/components/icons/refresh-icon.d.ts +3 -3
- package/dist/components/icons/replace.d.ts +3 -3
- package/dist/components/icons/save.d.ts +3 -3
- package/dist/components/icons/search-status.d.ts +3 -3
- package/dist/components/icons/search.d.ts +3 -3
- package/dist/components/icons/settings-fallback.d.ts +3 -3
- package/dist/components/icons/share/index.esm.js.map +1 -1
- package/dist/components/icons/share/index.js.map +1 -1
- package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/components/icons/stacked-layer.d.ts +3 -3
- package/dist/components/icons/start-filled.d.ts +3 -3
- package/dist/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/components/icons/tick-circle.d.ts +3 -3
- package/dist/components/icons/tick-octagon.d.ts +3 -3
- package/dist/components/icons/tick.d.ts +3 -3
- package/dist/components/icons/toggle-switch.d.ts +3 -3
- package/dist/components/icons/trash.d.ts +3 -3
- package/dist/components/icons/wave.d.ts +3 -3
- package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/components/icons/work-centre.d.ts +3 -3
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/label-value/label-value/index.esm.js.map +1 -1
- package/dist/components/label-value/label-value/index.js.map +1 -1
- package/dist/components/listing/listing/index.esm.js.map +1 -1
- package/dist/components/listing/listing/index.js.map +1 -1
- package/dist/components/loaders/erp-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/erp-loader/index.js.map +1 -1
- package/dist/components/loaders/form-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/form-loader/index.js.map +1 -1
- package/dist/components/loaders/modal-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/modal-loader/index.js.map +1 -1
- package/dist/components/loaders/page-loader/index.esm.js.map +1 -1
- package/dist/components/loaders/page-loader/index.js.map +1 -1
- package/dist/components/location-select.d.ts +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table.d.ts +1 -1
- package/dist/components/material-table/material-table.d.ts +1 -1
- package/dist/components/menu/menu/index.esm.js.map +1 -1
- package/dist/components/menu/menu/index.js.map +1 -1
- package/dist/components/modal/modal/index.esm.js.map +1 -1
- package/dist/components/modal/modal/index.js.map +1 -1
- package/dist/components/page-navigator/page-navigator/index.esm.js.map +1 -1
- package/dist/components/page-navigator/page-navigator/index.js.map +1 -1
- package/dist/components/phone-input/phone-input.d.ts +1 -1
- package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
- package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/reset-password-modal/reset-password-modal/index.esm.js.map +1 -1
- package/dist/components/reset-password-modal/reset-password-modal/index.js.map +1 -1
- package/dist/components/search-bar/search-bar/index.esm.js.map +1 -1
- package/dist/components/search-bar/search-bar/index.js.map +1 -1
- package/dist/components/searchable-select/index.esm.js.map +1 -1
- package/dist/components/searchable-select/index.js.map +1 -1
- package/dist/components/select/controller/chip-or-placeholder/index.esm.js.map +1 -1
- package/dist/components/select/controller/chip-or-placeholder/index.js.map +1 -1
- package/dist/components/select/select/index.esm.js.map +1 -1
- package/dist/components/select/select/index.js.map +1 -1
- package/dist/components/select/select-search/index.esm.js.map +1 -1
- package/dist/components/select/select-search/index.js.map +1 -1
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
- package/dist/components/sub-header-doc/sub-header-doc/index.esm.js.map +1 -1
- package/dist/components/sub-header-doc/sub-header-doc/index.js.map +1 -1
- package/dist/components/switches/android-12-switch/index.esm.js.map +1 -1
- package/dist/components/switches/android-12-switch/index.js.map +1 -1
- package/dist/components/switches/android-12-switch.d.ts +1 -3
- package/dist/components/text-area/text-area/index.esm.js.map +1 -1
- package/dist/components/text-area/text-area/index.js.map +1 -1
- package/dist/components/text-field/text-field/index.esm.js.map +1 -1
- package/dist/components/text-field/text-field/index.js.map +1 -1
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/time-picker/time-picker/index.esm.js.map +1 -1
- package/dist/components/time-picker/time-picker/index.js.map +1 -1
- package/dist/components/time-picker/time-picker.d.ts +1 -1
- package/dist/components/toast/toast/index.esm.js.map +1 -1
- package/dist/components/toast/toast/index.js.map +1 -1
- package/dist/components/toggle/toggle/index.esm.js.map +1 -1
- package/dist/components/toggle/toggle/index.js.map +1 -1
- package/dist/components/typography/typography/index.esm.js.map +1 -1
- package/dist/components/typography/typography/index.js.map +1 -1
- package/dist/components/upload/upload/index.esm.js +2 -2
- package/dist/components/upload/upload/index.esm.js.map +1 -1
- package/dist/components/upload/upload/index.js +11 -11
- package/dist/components/upload/upload/index.js.map +1 -1
- package/dist/components/upload-media/upload-media.d.ts +1 -1
- package/dist/constants/defaultColumns/index.esm.js.map +1 -1
- package/dist/constants/defaultColumns/index.js.map +1 -1
- package/dist/constants/modules/index.esm.js.map +1 -1
- package/dist/constants/modules/index.js.map +1 -1
- package/dist/constants/pathnames/pathname/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.accounting/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.accounting/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.crm/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.crm/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.document/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.document/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.hrms/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.hrms/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.inventory/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.inventory/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.manufacturing/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.manufacturing/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.office/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.office/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.procurement/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.procurement/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.project/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.project/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.quotes/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.quotes/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.rental/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.rental/index.js.map +1 -1
- package/dist/constants/pathnames/pathname.user/index.esm.js.map +1 -1
- package/dist/constants/pathnames/pathname.user/index.js.map +1 -1
- package/dist/constants/route-page-map/index.esm.js.map +1 -1
- package/dist/constants/route-page-map/index.js.map +1 -1
- package/dist/constants/status/index.esm.js.map +1 -1
- package/dist/constants/status/index.js.map +1 -1
- package/dist/contexts/AuthContext/index.esm.js +1 -1
- package/dist/contexts/AuthContext/index.esm.js.map +1 -1
- package/dist/contexts/AuthContext/index.js +1 -1
- package/dist/contexts/AuthContext/index.js.map +1 -1
- package/dist/contexts/languageContext/index.esm.js +1 -1
- package/dist/contexts/languageContext/index.esm.js.map +1 -1
- package/dist/contexts/languageContext/index.js +1 -1
- package/dist/contexts/languageContext/index.js.map +1 -1
- package/dist/contexts/page-context/index.esm.js.map +1 -1
- package/dist/contexts/page-context/index.js.map +1 -1
- package/dist/hooks/use-translations/index.esm.js.map +1 -1
- package/dist/hooks/use-translations/index.js.map +1 -1
- package/dist/hooks/useApi/index.esm.js.map +1 -1
- package/dist/hooks/useApi/index.js.map +1 -1
- package/dist/hooks/useDataFetcher/index.esm.js.map +1 -1
- package/dist/hooks/useDataFetcher/index.js.map +1 -1
- package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
- package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
- package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
- package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
- package/dist/node_modules/@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/{@toast-ui → @glideapps/glide-data-grid-cells/node_modules/@toast-ui}/react-editor/dist/esm/index/index.esm.js +2 -2
- package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +1 -0
- package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +2 -0
- package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +1 -0
- 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/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/node_modules/{@tanstack → material-react-table/node_modules/@tanstack}/react-virtual/dist/esm/index/index.esm.js +2 -2
- package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +1 -0
- package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +2 -0
- package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +1 -0
- package/dist/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/redux/actionCreator/index.js.map +1 -1
- package/dist/redux/module-reducer/index.esm.js.map +1 -1
- package/dist/redux/module-reducer/index.js.map +1 -1
- package/dist/redux/store/index.esm.js.map +1 -1
- package/dist/redux/store/index.js.map +1 -1
- package/dist/server/index.esm.js.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/src/components/accordion/accordion.d.ts +1 -1
- package/dist/src/components/action-bar/action-bar.d.ts +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +1 -1
- package/dist/src/components/date-picker/date-picker.d.ts +1 -1
- package/dist/src/components/footer/footer.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/src/components/icons/action-arrow.d.ts +3 -3
- package/dist/src/components/icons/add-circle.d.ts +3 -3
- package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/src/components/icons/arrow-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/src/components/icons/assignments.d.ts +3 -3
- package/dist/src/components/icons/blank-circle.d.ts +3 -3
- package/dist/src/components/icons/block-filled.d.ts +3 -3
- package/dist/src/components/icons/calendar-add.d.ts +3 -3
- package/dist/src/components/icons/calendar.d.ts +3 -3
- package/dist/src/components/icons/checkbox-square.d.ts +3 -3
- package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/src/components/icons/clock.d.ts +3 -3
- package/dist/src/components/icons/close.d.ts +3 -3
- package/dist/src/components/icons/coin-outline.d.ts +3 -3
- package/dist/src/components/icons/copy.d.ts +3 -3
- package/dist/src/components/icons/coupon.d.ts +3 -3
- package/dist/src/components/icons/cross-hire.d.ts +3 -3
- package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/src/components/icons/dashboard.d.ts +3 -3
- package/dist/src/components/icons/document-download.d.ts +3 -3
- package/dist/src/components/icons/document.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle.d.ts +3 -3
- package/dist/src/components/icons/edit.d.ts +3 -3
- package/dist/src/components/icons/email.d.ts +3 -3
- package/dist/src/components/icons/export.d.ts +3 -3
- package/dist/src/components/icons/eye-off.d.ts +3 -3
- package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/src/components/icons/eye.d.ts +3 -3
- package/dist/src/components/icons/filled-circle.d.ts +3 -3
- package/dist/src/components/icons/filter-remove.d.ts +3 -3
- package/dist/src/components/icons/filter.d.ts +3 -3
- package/dist/src/components/icons/folder-save.d.ts +3 -3
- package/dist/src/components/icons/grid.d.ts +3 -3
- package/dist/src/components/icons/hashtag.d.ts +3 -3
- package/dist/src/components/icons/image.d.ts +3 -3
- package/dist/src/components/icons/import.d.ts +3 -3
- package/dist/src/components/icons/info-circle.d.ts +3 -3
- package/dist/src/components/icons/info.d.ts +3 -3
- package/dist/src/components/icons/link-horizontal.d.ts +3 -3
- package/dist/src/components/icons/link.d.ts +3 -3
- package/dist/src/components/icons/location.d.ts +3 -3
- package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/src/components/icons/lowest-price.d.ts +3 -3
- package/dist/src/components/icons/more.d.ts +3 -3
- package/dist/src/components/icons/notification.d.ts +3 -3
- package/dist/src/components/icons/paper-clip.d.ts +3 -3
- package/dist/src/components/icons/paragraph.d.ts +3 -3
- package/dist/src/components/icons/payment-request.d.ts +3 -3
- package/dist/src/components/icons/phone.d.ts +3 -3
- package/dist/src/components/icons/printer.d.ts +3 -3
- package/dist/src/components/icons/process-calendar.d.ts +3 -3
- package/dist/src/components/icons/promotion.d.ts +3 -3
- package/dist/src/components/icons/radio-button.d.ts +3 -3
- package/dist/src/components/icons/receipt-filled.d.ts +3 -3
- package/dist/src/components/icons/receipt-outline.d.ts +3 -3
- package/dist/src/components/icons/receipt.d.ts +3 -3
- package/dist/src/components/icons/refresh-icon.d.ts +3 -3
- package/dist/src/components/icons/replace.d.ts +3 -3
- package/dist/src/components/icons/save.d.ts +3 -3
- package/dist/src/components/icons/search-status.d.ts +3 -3
- package/dist/src/components/icons/search.d.ts +3 -3
- package/dist/src/components/icons/settings-fallback.d.ts +3 -3
- package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/src/components/icons/stacked-layer.d.ts +3 -3
- package/dist/src/components/icons/start-filled.d.ts +3 -3
- package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/tick-circle.d.ts +3 -3
- package/dist/src/components/icons/tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/tick.d.ts +3 -3
- package/dist/src/components/icons/toggle-switch.d.ts +3 -3
- package/dist/src/components/icons/trash.d.ts +3 -3
- package/dist/src/components/icons/wave.d.ts +3 -3
- package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/work-centre.d.ts +3 -3
- package/dist/src/components/location-select.d.ts +1 -1
- package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -1
- package/dist/src/components/material-table/material-table.d.ts +1 -1
- package/dist/src/components/phone-input/phone-input.d.ts +1 -1
- package/dist/src/components/radio/radio.d.ts +1 -1
- package/dist/src/components/select/select.d.ts +1 -1
- package/dist/src/components/switches/android-12-switch.d.ts +1 -3
- package/dist/src/components/text-field/text-field.d.ts +1 -1
- package/dist/src/components/time-picker/time-picker.d.ts +1 -1
- package/dist/src/components/upload-media/upload-media.d.ts +1 -1
- package/dist/src/utils/common-utility.d.ts +1 -1
- package/dist/style.css +62 -62
- package/dist/styles/index.d.ts +1 -1
- package/dist/theme/theme-impl/index.esm.js.map +1 -1
- package/dist/theme/theme-impl/index.js.map +1 -1
- package/dist/utils/api/index.esm.js +6 -6
- package/dist/utils/api/index.esm.js.map +1 -1
- package/dist/utils/api/index.js +1 -1
- package/dist/utils/api/index.js.map +1 -1
- package/dist/utils/common/index.esm.js +6 -6
- package/dist/utils/common/index.esm.js.map +1 -1
- package/dist/utils/common/index.js +1 -1
- package/dist/utils/common/index.js.map +1 -1
- package/dist/utils/common-utility.d.ts +1 -1
- package/dist/utils/date-range/index.esm.js.map +1 -1
- package/dist/utils/date-range/index.js.map +1 -1
- package/dist/utils/i18n/index.esm.js.map +1 -1
- package/dist/utils/i18n/index.js.map +1 -1
- package/dist/utils/menu-filter/index.esm.js.map +1 -1
- package/dist/utils/menu-filter/index.js.map +1 -1
- package/dist/views/404/index.esm.js.map +1 -1
- package/dist/views/404/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/dashboard/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/dashboard/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/actionCreator/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/reducer/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/reducer/index.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/state/index.esm.js.map +1 -1
- package/dist/views/afterAuth/dashboard/redux/state/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/page-view/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/page-view/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/actionCreator/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/reducer/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/reducer/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/state/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/redux/state/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/default-data/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/default-data/index.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/local-data/index.esm.js.map +1 -1
- package/dist/views/afterAuth/page-view/utils/local-data/index.js.map +1 -1
- package/dist/views/beforeAuth/change-password/change-password/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/change-password/change-password/index.js.map +1 -1
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -1
- package/dist/views/beforeAuth/forgot-password/forgot-password/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/forgot-password/forgot-password/index.js.map +1 -1
- package/dist/views/beforeAuth/landing/landing/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/landing/landing/index.js.map +1 -1
- package/dist/views/beforeAuth/reset-password/reset-password/index.esm.js.map +1 -1
- package/dist/views/beforeAuth/reset-password/reset-password/index.js.map +1 -1
- package/dist/views/form-builder/custom-form/index.esm.js.map +1 -1
- package/dist/views/form-builder/custom-form/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/checkbox/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/checkbox/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/column-width/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/field-select/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/field-select/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/section/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/section/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/select/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/select/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/table-form/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/table-form/index.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/text/index.esm.js.map +1 -1
- package/dist/views/form-builder/element-edit-forms/text/index.js.map +1 -1
- package/dist/views/form-builder/field_properties/index.esm.js.map +1 -1
- package/dist/views/form-builder/field_properties/index.js.map +1 -1
- package/dist/views/form-builder/form-fields/index.esm.js.map +1 -1
- package/dist/views/form-builder/form-fields/index.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
- package/dist/views/form-builder/redux/reducer/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/reducer/index.js.map +1 -1
- package/dist/views/form-builder/redux/state/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/state/index.js.map +1 -1
- package/dist/views/form-builder/utils/common/index.esm.js.map +1 -1
- package/dist/views/form-builder/utils/common/index.js.map +1 -1
- package/dist/views/index.d.ts +8 -8
- package/dist/views/privateRoute/index.esm.js.map +1 -1
- package/dist/views/privateRoute/index.js.map +1 -1
- package/dist/views/template-editor/add-template/add-template/index.esm.js.map +1 -1
- package/dist/views/template-editor/add-template/add-template/index.js.map +1 -1
- package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorCanvas/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorCanvas/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorHeader/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorHeader/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorSection/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorSection/index.js.map +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
- package/dist/views/template-editor/components/SectionFlowEditor/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/SectionFlowEditor/index.js.map +1 -1
- package/dist/views/template-editor/components/SectionFormatPanel/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/SectionFormatPanel/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/AlignmentControl/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/AlignmentControl/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ButtonControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ButtonControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/CodeControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/CodeControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/DividerControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/DividerControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ImageControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/ImageControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/SignatureControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/SignatureControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TableControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TableControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TextControls/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/TextControls/index.js.map +1 -1
- package/dist/views/template-editor/components/controllers/border-control/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/controllers/border-control/index.js.map +1 -1
- package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.js.map +1 -1
- package/dist/views/template-editor/routes/index.esm.js.map +1 -1
- package/dist/views/template-editor/routes/index.js.map +1 -1
- package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.esm.js.map +1 -1
- package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.js.map +1 -1
- package/dist/views/template-editor/template-modal/template-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/template-modal/template-modal/index.js.map +1 -1
- package/dist/views/template-editor/template-name-modal/template-name-modal/index.esm.js.map +1 -1
- package/dist/views/template-editor/template-name-modal/template-name-modal/index.js.map +1 -1
- package/dist/views/template-editor/templates/index.esm.js +1 -1
- package/dist/views/template-editor/templates/index.esm.js.map +1 -1
- package/dist/views/template-editor/templates/index.js +1 -1
- package/dist/views/template-editor/templates/index.js.map +1 -1
- package/dist/views/template-editor/utils/common/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/common/index.js.map +1 -1
- package/dist/views/template-editor/utils/constant/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/constant/index.js.map +1 -1
- package/dist/views/template-editor/utils/default-data/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/default-data/index.js.map +1 -1
- package/dist/views/template-editor/utils/style-extractor/index.esm.js.map +1 -1
- package/dist/views/template-editor/utils/style-extractor/index.js.map +1 -1
- package/dist/vite-env.d.ts +23 -23
- package/package.json +299 -299
- package/src/styles/README.md +287 -287
- package/src/styles/all.scss +7 -7
- package/src/styles/animations.scss +5 -5
- package/src/styles/css/reset.css +1 -1
- package/src/styles/index.d.ts +1 -1
- package/src/styles/index.ts +1 -1
- package/src/styles/mixins.scss +5 -5
- package/src/styles/sass/main.scss +11 -11
- package/src/styles/utils.scss +5 -5
- package/src/styles/variables.scss +4 -4
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +0 -1
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +0 -2
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +0 -1
- package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +0 -1
- package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +0 -2
- package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/EditorSection.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useRef, useState, lazy, Suspense, useCallback, useMemo } from 'react';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport {\n\tBox,\n\tPaper,\n\tMenuItem,\n\tFormControl,\n\tIconButton,\n\tFade,\n\tFormControlLabel,\n\tSkeleton\n} from '@mui/material';\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport SplitIcon from '@mui/icons-material/CallSplit';\nimport { SectionData } from '../types/editor';\nimport { Edit, Save, Trash } from '../../../components/icons';\nimport Select from '../../../components/select/select';\nimport Typography from '../../../components/typography/typography';\nimport EditSectionModal from '../edit-section-modal/edit-section-modal';\nimport Checkbox from '../../../components/checkbox/checkbox';\nimport Chip from '../../../components/chip/chip';\nimport Close from '@mui/icons-material/Close';\nimport { useCKEditorStyleExtractor } from '../utils/style-extractor';\n\nconst CustomEditor = lazy(() => import('../../../components/editor/custom-editor'));\n\ninterface EditorSectionProps {\n\tsection: SectionData;\n\tisSelected: boolean;\n\tisDragging: boolean;\n\tisOver: boolean;\n\tonSelect: () => void;\n\tonUpdate: (content: string, options?: any) => void;\n\tonSplit: (content1: string, content2: string) => void;\n\tonDelete: () => void;\n\tplaceholders: Array<{ value: string; label: string }>;\n\tsetIsSectionEditing:(value: boolean)=> void;\n}\n\nconst editableSections = ['text', 'text-block', 'heading', 'heading-1', 'heading-2', 'heading-3', 'heading-4'];\n\nconst EditorSection: React.FC<EditorSectionProps> = React.memo(({\n\tsection,\n\tisSelected,\n\tisDragging,\n\tisOver,\n\tonSelect,\n\tonUpdate,\n\tonSplit,\n\tonDelete,\n\tplaceholders,\n\tsetIsSectionEditing\n}) => {\n\tconst { extractStyles, getSingleStyles } = useCKEditorStyleExtractor();\n\n\tconst {\n\t\tattributes,\n\t\tlisteners,\n\t\tsetNodeRef: setDraggableRef,\n\t\ttransform\n\t} = useDraggable({ id: section.id });\n\n\tconst { setNodeRef: setDroppableRef } = useDroppable({ id: section.id });\n\tconst [isEditing, setIsEditing] = useState(false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isOpenEditSectionModal, setIsOpenEditSectionModal] = useState(false);\n\tconst [isEditedFromSource, setIsEditedFromSource] = useState(Boolean(section?.is_edited_from_source));\n\tconst editorRef = useRef<any>(null);\n\tconst mouseHoverTimeoutRef = useRef<number | null>(null);\n\n\t// Memoize style calculation\n\tconst style = useMemo(() => {\n\t\treturn transform\n\t\t\t? {\n\t\t\t\t\ttransform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,\n\t\t\t\t\ttransition: 'none'\n\t\t\t\t}\n\t\t\t: { transition: 'all 0.2s ease' };\n\t}, [transform]);\n\n\t// Memoize sx prop for Paper to prevent re-creation\n\tconst paperSx = useMemo(() => ({\n\t\tposition: 'relative',\n\t\tborder: '1px dashed',\n\t\tborderColor: isSelected ? 'primary.main' : isOver ? 'primary.main' : 'grey.400',\n\t\tborderRadius: 1,\n\t\tbgcolor: 'white',\n\t\topacity: isDragging ? 0.7 : 1,\n\t\tboxShadow: 'none',\n\t\ttransition: 'all 0.2s ease',\n\t\t'&:hover': {\n\t\t\tboxShadow: 'none'\n\t\t},\n\t\t...(isOver && { borderColor: 'primary.main', boxShadow: 'none' })\n\t}), [isSelected, isOver, isDragging]);\n\n\t// Memoize merged ref to prevent re-creation\n\tconst mergedRef = useCallback((node: HTMLElement | null) => {\n\t\tsetDraggableRef(node);\n\t\tsetDroppableRef(node);\n\t}, [setDraggableRef, setDroppableRef]);\n\n\t// Memoize event handlers\n\tconst handleDblClick = useCallback(() => {\n\t\tif (editableSections.includes(section.type)) {\n\t\t\thandleEditing();\n\t\t}\n\t}, [section.type]);\n\n\tconst handleEditing = useCallback(() => {\n\t\tif (section?.isSplitPair) {\n\t\t\tsetIsOpenEditSectionModal(true);\n\t\t} else {\n\t\t\tsetIsEditing(true);\n\t\t\tsetIsSectionEditing(true);\n\t\t}\n\t}, [section?.isSplitPair]);\n\n\tconst handleEditorReady = useCallback((editor: any) => {\n\t\teditorRef.current = editor;\n\t}, []);\n\n\tconst handleSave = useCallback((e) => {\n\t\te.stopPropagation();\n\t\tif (editorRef.current) {\n\t\t\tconst content = editorRef.current.getData();\n\t\t\tconst styles = extractStyles(section.content, {\n\t\t\t\tincludeTagStyles: true,\n\t\t\t\tincludeInlineStyles: true,\n\t\t\t\tmergeNestedStyles: true,\n\t\t\t\tfilterEmptyStyles: true\n\t\t\t});\n\t\t\tconst single = getSingleStyles(styles);\n\t\t\t// Merge styles safely\n\t\t\tconst mergedStyles = {\n\t\t\t\t...(section.attributes?.styles || {}),\n\t\t\t\t...single\n\t\t\t};\n\t\n\t\t\t// Merge attributes, giving priority to new props\n\t\t\tconst mergedAttributes = {\n\t\t\t\t...(section.attributes || {}),\n\t\t\t\tstyles: mergedStyles,\n\t\t\t};\n\t\t\tonUpdate(content, { is_edited_from_source: isEditedFromSource, attributes: mergedAttributes });\n\t\t}\n\t\tsetIsEditing(false);\n\t\tsetIsSectionEditing(false)\n\t\tsetIsOpenEditSectionModal(false);\n\t}, [onUpdate, isEditedFromSource]);\n\n\tconst handleSplit = useCallback(() => {\n\t\tconst content = section.content || '';\n\t\tconst firstHalf = content;\n\t\tconst secondHalf = '';\n\t\tonSplit(firstHalf, secondHalf);\n\t}, [section.content, onSplit]);\n\n\tconst handleAddPlaceholder = useCallback((placeholder: string) => {\n\t\tif (editorRef.current) {\n\t\t\tconst viewFragment = editorRef.current.data.processor.toView(\n\t\t\t\t`{{${placeholder}}}`\n\t\t\t);\n\t\t\tconst modelFragment = editorRef.current.data.toModel(viewFragment);\n\t\t\teditorRef.current.model.insertContent(modelFragment);\n\t\t}\n\t}, []);\n\n\tconst handleMouseEnter = useCallback(() => {\n\t\tif (mouseHoverTimeoutRef.current !== null) {\n\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\n\t\t}\n\t\tmouseHoverTimeoutRef.current = window.setTimeout(() => {\n\t\t\tsetIsHovered(true);\n\t\t}, 50);\n\t}, []);\n\n\tconst handleMouseLeave = useCallback(() => {\n\t\tif (mouseHoverTimeoutRef.current !== null) {\n\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\n\t\t}\n\t\tmouseHoverTimeoutRef.current = window.setTimeout(() => {\n\t\t\tsetIsHovered(false);\n\t\t}, 50);\n\t}, []);\n\n\tconst handleClick = useCallback((e) => {\n\t\te.stopPropagation();\n\t\tonSelect();\n\t}, [onSelect]);\n\n\tconst handleDeleteClick = useCallback((e) => {\n\t\te.stopPropagation();\n\t\tonDelete();\n\t}, [onDelete]);\n\n\tconst handleCancelEdit = useCallback(() => {\n\t\tsetIsEditing(false);\n\t\tsetIsSectionEditing(false)\n\t}, []);\n\n\tconst handleCheckboxChange = useCallback((e) => {\n\t\tsetIsEditedFromSource(e.target.checked);\n\t}, []);\n\n\tconst handleSelectChange = useCallback((e) => {\n\t\tif (e.target.value) {\n\t\t\thandleAddPlaceholder(e.target.value as string);\n\t\t\te.target.value = '';\n\t\t}\n\t}, [handleAddPlaceholder]);\n\n\t// Cleanup function for hover timeout\n\tReact.useEffect(() => {\n\t\treturn () => {\n\t\t\tif (mouseHoverTimeoutRef.current !== null) {\n\t\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// Memoize content rendering to prevent unnecessary re-renders\n\tconst contentRenderer = useMemo(() => {\n\t\tif (isEditing) {\n\t\t\treturn (\n\t\t\t\t<Suspense fallback={<Skeleton />}>\n\t\t\t\t\t<CustomEditor \n\t\t\t\t\t\teditorRef={editorRef}\n\t\t\t\t\t\thandleEditorReady={handleEditorReady} \n\t\t\t\t\t\tdata={section.content}\n\t\t\t\t\t\tonError={(error) => console.error('Editor error:', error)}\n\t\t\t\t\t/>\n\t\t\t\t</Suspense>\n\t\t\t);\n\t\t}\n\t\t\n\t\treturn (\n\t\t\t<Box\n\t\t\t\tdangerouslySetInnerHTML={{ __html: section.content }}\n\t\t\t\tsx={{\n\t\t\t\t\tposition: 'relative',\n\t\t\t\t\tpy: section.type === 'divider' ? 1 : 0,\n\t\t\t\t\tlineHeight: 1.6,\n\t\t\t\t\t'& p': { margin: 0 }\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}, [isEditing, section.content, section.type, handleEditorReady]);\n\n\t// Memoize placeholder options\n\tconst placeholderOptions = useMemo(() => \n\t\tplaceholders.map((option) => (\n\t\t\t<MenuItem key={option.value} value={option.value}>\n\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\n\t\t\t</MenuItem>\n\t\t))\n\t, [placeholders]);\n\n\treturn (\n\t\t<Paper\n\t\t\tref={mergedRef}\n\t\t\tstyle={style}\n\t\t\televation={isHovered || isSelected ? 3 : 1}\n\t\t\tsx={paperSx}\n\t\t\tonClick={handleClick}\n\t\t\tonDoubleClick={handleDblClick}\n\t\t\tonMouseEnter={handleMouseEnter}\n\t\t\tonMouseLeave={handleMouseLeave}>\n\t\t\t{isOver && !isDragging && (\n\t\t\t\t<Box\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\tborder: '2px dashed',\n\t\t\t\t\t\tborderColor: 'primary.main',\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\tbgcolor: 'rgba(25, 118, 210, 0.04)',\n\t\t\t\t\t\tzIndex: 10,\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\tpointerEvents: 'none'\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Typography type='s2' color='primary' weight='medium'>Drop here</Typography>\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t\t<Box\n\t\t\t\tsx={{\n\t\t\t\t\tbgcolor: 'grey.50',\n\t\t\t\t\tp: 1,\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\talignItems: 'center',\n\t\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\t\tborderBottom: '1px solid',\n\t\t\t\t\tborderColor: 'grey.200'\n\t\t\t\t}}>\n\t\t\t\t<Box\n\t\t\t\t\t{...listeners}\n\t\t\t\t\t{...attributes}\n\t\t\t\t\tsx={{\n\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\talignItems: 'center',\n\t\t\t\t\t\tcursor: 'grab',\n\t\t\t\t\t\tpx: 1,\n\t\t\t\t\t\tpy: 0.5,\n\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\ttransition: 'background-color 0.2s ease',\n\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.100' },\n\t\t\t\t\t\t'&:active': { cursor: 'grabbing' }\n\t\t\t\t\t}}>\n\t\t\t\t\t<DragIndicatorIcon\n\t\t\t\t\t\tsx={{ color: 'grey.600', fontSize: '1.2rem', mr: 0.5 }}\n\t\t\t\t\t/>\n\t\t\t\t\t<Typography type='s3' color='theme.secondary.600' weight='medium'>Move</Typography>\n\t\t\t\t</Box>\n\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n\t\t\t\t\t{isEditing ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<FormControlLabel control={\n\t\t\t\t\t\t\t\t<Checkbox \n\t\t\t\t\t\t\t\t\tonClick={handleCheckboxChange} \n\t\t\t\t\t\t\t\t\tdefaultChecked={isEditedFromSource}/>} \n\t\t\t\t\t\t\t\t\tlabel={<Typography type='s2' color='theme.secondary.1000'>Edited from source</Typography>} />\n\t\t\t\t\t\t\t<FormControl size='small' sx={{ minWidth: 160 }}>\n\t\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\t\tdisplayEmpty\n\t\t\t\t\t\t\t\t\tvalue=''\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\trenderValue={() => 'Add placeholder...'}\n\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\tbgcolor: 'white',\n\t\t\t\t\t\t\t\t\t\tborderRadius: 1,\n\t\t\t\t\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonChange={handleSelectChange}>\n\t\t\t\t\t\t\t\t\t{placeholderOptions}\n\t\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t<Box>\n\t\t\t\t\t\t\t\t<IconButton size='small' onClick={handleSave}>\n\t\t\t\t\t\t\t\t\t<Save fontSize='small' color='inherit' />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t<IconButton size='small' onClick={handleCancelEdit} color='error'>\n\t\t\t\t\t\t\t\t\t<Close fontSize='small' color='inherit' />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Fade in={isHovered || isSelected} timeout={200}>\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0.5 }}>\n\t\t\t\t\t\t\t\t{section?.is_edited_from_source && (\n\t\t\t\t\t\t\t\t\t<Chip\n\t\t\t\t\t\t\t\t\t\tlabel=\"Edited From Source\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tsx={(theme) => ({ \n\t\t\t\t\t\t\t\t\t\t\ttextTransform: 'capitalize', \n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.tertiary1?.[200], \n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.tertiary1?.[900]\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{editableSections.includes(section.type) &&\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\t\tonClick={handleEditing}\n\t\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' }\n\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t<Edit fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\n\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\tonClick={handleSplit}\n\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' },\n\t\t\t\t\t\t\t\t\t\topacity: section?.splitWidth === 25 ? 0.5 : 1\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tdisabled={section?.splitWidth === 25}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<SplitIcon fontSize='small' color='primary' />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\tonClick={handleDeleteClick}\n\t\t\t\t\t\t\t\t\tsx={{\n\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\n\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' }\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.error.500' }} />\n\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Fade>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t\t<Box sx={{ p: 3, bgcolor: 'white' }}>\n\t\t\t\t<style>\n {`\n .ck.ck-toolbar.ck-toolbar_floating {\n display: none;\n }\n .ck.ck-toolbar.ck-toolbar_floating.visible {\n display: flex;\n }\n\t\t\t\t\t\ta {\n\t\t\t\t\t\t\tcolor: #007bff !important;\n\t\t\t\t\t\t\ttext-decoration: none !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ta:hover {\n\t\t\t\t\t\t\ttext-decoration: underline;\n\t\t\t\t\t\t}\n `}\n </style>\n\t\t\t\t{contentRenderer}\n\t\t\t</Box>\n\t\t\t{isOpenEditSectionModal && <EditSectionModal\n\t\t\t\tisOpen={isOpenEditSectionModal}\n\t\t\t\tsetIsOpen={setIsOpenEditSectionModal}\n\t\t\t\tplaceholders={placeholders}\n\t\t\t\thandleSave={handleSave}\n\t\t\t\thandleAddPlaceholder={handleAddPlaceholder}\n\t\t\t\thandleEditorReady={handleEditorReady}\n\t\t\t\tsection={section}\n\t\t\t/>}\n\t\t</Paper>\n\t);\n});\n\nEditorSection.displayName = 'EditorSection';\n\nexport default EditorSection;"],"names":["CustomEditor","lazy","Promise","resolve","then","require","editableSections","EditorSection","React","memo","section","isSelected","isDragging","isOver","onSelect","onUpdate","onSplit","onDelete","placeholders","setIsSectionEditing","extractStyles","getSingleStyles","useCKEditorStyleExtractor","attributes","listeners","setNodeRef","setDraggableRef","transform","useDraggable","id","setDroppableRef","useDroppable","isEditing","setIsEditing","useState","isHovered","setIsHovered","isOpenEditSectionModal","setIsOpenEditSectionModal","isEditedFromSource","setIsEditedFromSource","Boolean","is_edited_from_source","editorRef","useRef","mouseHoverTimeoutRef","style","useMemo","x","y","transition","paperSx","position","border","borderColor","borderRadius","bgcolor","opacity","boxShadow","mergedRef","useCallback","node","handleDblClick","includes","type","handleEditing","isSplitPair","handleEditorReady","editor","current","handleSave","e","stopPropagation","content","getData","styles","includeTagStyles","includeInlineStyles","mergeNestedStyles","filterEmptyStyles","single","mergedStyles","_a","mergedAttributes","handleSplit","handleAddPlaceholder","placeholder","viewFragment","data","processor","toView","modelFragment","toModel","model","insertContent","handleMouseEnter","window","clearTimeout","setTimeout","handleMouseLeave","handleClick","handleDeleteClick","handleCancelEdit","handleCheckboxChange","target","checked","handleSelectChange","value","useEffect","contentRenderer","jsx","Suspense","fallback","Skeleton","children","onError","error","Box","dangerouslySetInnerHTML","__html","sx","py","lineHeight","margin","placeholderOptions","map","option","MenuItem","Typography","color","label","jsxs","Paper","ref","elevation","onClick","onDoubleClick","onMouseEnter","onMouseLeave","top","left","right","bottom","zIndex","display","alignItems","justifyContent","pointerEvents","weight","p","borderBottom","cursor","px","DragIndicatorIcon","fontSize","mr","gap","Fragment","FormControlLabel","control","Checkbox","defaultChecked","FormControl","size","minWidth","Select","displayEmpty","renderValue","onChange","IconButton","Save","Close","Fade","in","timeout","Chip","theme","textTransform","backgroundColor","_b","palette","tertiary1","_d","_c","Edit","splitWidth","disabled","SplitIcon","Trash","EditSectionModal","isOpen","setIsOpen","displayName"],"mappings":"ypDA0BA,MAAMA,EAAeC,EAAAA,KAAK,IAAMC,QAAAC,UAAAC,KAAA,WAAA,OAAAC,QAAO,2DAejCC,EAAmB,CAAC,OAAQ,aAAc,UAAW,YAAa,YAAa,YAAa,aAE5FC,EAA8CC,EAAAA,QAAMC,KAAK,EAC9DC,UACAC,aACAC,aACAC,SACAC,WACAC,WACAC,UACAC,WACAC,eACAC,0BAEA,MAAMC,cAAEA,EAAAC,gBAAeA,GAAoBC,+BAErCC,WACLA,EAAAC,UACAA,EACAC,WAAYC,EAAAC,UACZA,GACGC,EAAAA,aAAa,CAAEC,GAAInB,EAAQmB,MAEvBJ,WAAYK,GAAoBC,EAAAA,aAAa,CAAEF,GAAInB,EAAQmB,MAC5DG,EAAWC,GAAgBC,EAAAA,UAAS,IACpCC,EAAWC,GAAgBF,EAAAA,UAAS,IACpCG,EAAwBC,GAA6BJ,EAAAA,UAAS,IAC9DK,EAAoBC,GAAyBN,EAAAA,SAASO,QAAQ,MAAA/B,OAAA,EAAAA,EAASgC,wBACxEC,EAAYC,EAAAA,OAAY,MACxBC,EAAuBD,EAAAA,OAAsB,MAG7CE,EAAQC,EAAAA,QAAQ,IACdpB,EACJ,CACAA,UAAW,eAAeA,EAAUqB,QAAQrB,EAAUsB,UACtDC,WAAY,QAEZ,CAAEA,WAAY,iBACf,CAACvB,IAGEwB,GAAUJ,EAAAA,QAAQ,KAAA,CACvBK,SAAU,WACVC,OAAQ,aACRC,YAAa3C,GAA8BE,EAAjB,eAA2C,WACrE0C,aAAc,EACdC,QAAS,QACTC,QAAS7C,EAAa,GAAM,EAC5B8C,UAAW,OACXR,WAAY,gBACZ,UAAW,CACVQ,UAAW,WAER7C,GAAU,CAAEyC,YAAa,eAAgBI,UAAW,UACrD,CAAC/C,EAAYE,EAAQD,IAGnB+C,GAAYC,cAAaC,IAC9BnC,EAAgBmC,GAChB/B,EAAgB+B,IACd,CAACnC,EAAiBI,IAGfgC,GAAiBF,EAAAA,YAAY,KAC9BtD,EAAiByD,SAASrD,EAAQsD,OACrCC,MAEC,CAACvD,EAAQsD,OAENC,GAAgBL,EAAAA,YAAY,YAC7BlD,WAASwD,aACZ5B,GAA0B,IAE1BL,GAAa,GACbd,GAAoB,KAEnB,CAAC,MAAAT,OAAA,EAAAA,EAASwD,cAEPC,GAAoBP,cAAaQ,IACtCzB,EAAU0B,QAAUD,GAClB,IAEGE,GAAaV,cAAaW,UAE/B,GADAA,EAAEC,kBACE7B,EAAU0B,QAAS,CACtB,MAAMI,EAAU9B,EAAU0B,QAAQK,UAC5BC,EAASvD,EAAcV,EAAQ+D,QAAS,CAC7CG,kBAAkB,EAClBC,qBAAqB,EACrBC,mBAAmB,EACnBC,mBAAmB,IAEdC,EAAS3D,EAAgBsD,GAEzBM,EAAe,KAChB,OAAAC,EAAAxE,EAAQa,iBAAR,EAAA2D,EAAoBP,SAAU,CAAA,KAC/BK,GAIEG,EAAmB,IACpBzE,EAAQa,YAAc,CAAA,EAC1BoD,OAAQM,GAETlE,EAAS0D,EAAS,CAAE/B,sBAAuBH,EAAoBhB,WAAY4D,GAC5E,CACAlD,GAAa,GACbd,GAAoB,GACpBmB,GAA0B,IACxB,CAACvB,EAAUwB,IAER6C,GAAcxB,EAAAA,YAAY,KAC/B,MAAMa,EAAU/D,EAAQ+D,SAAW,GAGnCzD,EAFkByD,EACC,KAEjB,CAAC/D,EAAQ+D,QAASzD,IAEfqE,GAAuBzB,cAAa0B,IACzC,GAAI3C,EAAU0B,QAAS,CACtB,MAAMkB,EAAe5C,EAAU0B,QAAQmB,KAAKC,UAAUC,OACrD,KAAKJ,OAEAK,EAAgBhD,EAAU0B,QAAQmB,KAAKI,QAAQL,GACrD5C,EAAU0B,QAAQwB,MAAMC,cAAcH,EACvC,GACE,IAEGI,GAAmBnC,EAAAA,YAAY,KACC,OAAjCf,EAAqBwB,SACxB2B,OAAOC,aAAapD,EAAqBwB,SAE1CxB,EAAqBwB,QAAU2B,OAAOE,WAAW,KAChD9D,GAAa,IACX,KACD,IAEG+D,GAAmBvC,EAAAA,YAAY,KACC,OAAjCf,EAAqBwB,SACxB2B,OAAOC,aAAapD,EAAqBwB,SAE1CxB,EAAqBwB,QAAU2B,OAAOE,WAAW,KAChD9D,GAAa,IACX,KACD,IAEGgE,GAAcxC,cAAaW,IAChCA,EAAEC,kBACF1D,KACE,CAACA,IAEEuF,GAAoBzC,cAAaW,IACtCA,EAAEC,kBACFvD,KACE,CAACA,IAEEqF,GAAmB1C,EAAAA,YAAY,KACpC3B,GAAa,GACbd,GAAoB,IAClB,IAEGoF,GAAuB3C,cAAaW,IACzC/B,EAAsB+B,EAAEiC,OAAOC,UAC7B,IAEGC,GAAqB9C,cAAaW,IACnCA,EAAEiC,OAAOG,QACZtB,GAAqBd,EAAEiC,OAAOG,OAC9BpC,EAAEiC,OAAOG,MAAQ,KAEhB,CAACtB,KAGJ7E,EAAAA,QAAMoG,UAAU,IACR,KAC+B,OAAjC/D,EAAqBwB,SACxB2B,OAAOC,aAAapD,EAAqBwB,UAGzC,IAGH,MAAMwC,GAAkB9D,EAAAA,QAAQ,IAC3Bf,iBAEF8E,EAAAA,IAACC,EAAAA,SAAA,CAASC,wBAAUF,EAAAA,IAACG,cACpBC,wBAAAJ,EAAAA,IAAC9G,EAAA,CACA2C,YACAwB,qBACAqB,KAAM9E,EAAQ+D,QACd0C,QAAUC,yBAObN,EAAAA,IAACO,EAAAA,QAAA,CACAC,wBAAyB,CAAEC,OAAQ7G,EAAQ+D,SAC3C+C,GAAI,CACHpE,SAAU,WACVqE,GAAqB,YAAjB/G,EAAQsD,KAAqB,EAAI,EACrC0D,WAAY,IACZ,MAAO,CAAEC,OAAQ,MAIlB,CAAC3F,EAAWtB,EAAQ+D,QAAS/D,EAAQsD,KAAMG,KAGxCyD,GAAqB7E,EAAAA,QAAQ,IAClC7B,EAAa2G,IAAKC,kBACjBhB,EAAAA,IAACiB,UAAA,CAA4BpB,MAAOmB,EAAOnB,MAC1CO,8BAACc,aAAA,CAAWhE,KAAK,KAAKiE,MAAM,uBAAwBf,WAAOgB,SAD7CJ,EAAOnB,QAItB,CAACzF;AAEH,OACCiH,EAAAA,KAACC,EAAAA,QAAA,CACAC,IAAK1E,GACLb,QACAwF,UAAWnG,GAAaxB,EAAa,EAAI,EACzC6G,GAAIrE,GACJoF,QAASnC,GACToC,cAAe1E,GACf2E,aAAc1C,GACd2C,aAAcvC,GACbe,SAAA,CAAArG,IAAWD,kBACXkG,EAAAA,IAACO,EAAAA,QAAA,CACAG,GAAI,CACHpE,SAAU,WACVuF,IAAK,EACLC,KAAM,EACNC,MAAO,EACPC,OAAQ,EACRzF,OAAQ,aACRC,YAAa,eACbC,aAAc,EACdC,QAAS,2BACTuF,OAAQ,GACRC,QAAS,OACTC,WAAY,SACZC,eAAgB,SAChBC,cAAe,QAGhBjC,wBAAAJ,EAAAA,IAACkB,cAAWhE,KAAK,KAAKiE,MAAM,UAAUmB,OAAO,SAASlC,SAAA;eAGxDiB,EAAAA,KAACd,EAAAA,QAAA,CACAG,GAAI,CACHhE,QAAS,UACT6F,EAAG,EACHL,QAAS,OACTC,WAAY,SACZC,eAAgB,gBAChBI,aAAc,YACdhG,YAAa,YAEd4D,SAAA;eAAAiB,EAAAA,KAACd,EAAAA,QAAA,IACI7F,KACAD,EACJiG,GAAI,CACHwB,QAAS,OACTC,WAAY,SACZM,OAAQ,OACRC,GAAI,EACJ/B,GAAI,GACJlE,aAAc,EACdL,WAAY,6BACZ,UAAW,CAAEM,QAAS,YACtB,WAAY,CAAE+F,OAAQ,aAEvBrC,SAAA;eAAAJ,EAAAA,IAAC2C,EAAAA,QAAA,CACAjC,GAAI,CAAES,MAAO,WAAYyB,SAAU,SAAUC,GAAI;eAElD7C,EAAAA,IAACkB,EAAAA,YAAWhE,KAAK,KAAKiE,MAAM,sBAAsBmB,OAAO,SAASlC,SAAA;eAEnEJ,EAAAA,IAACO,EAAAA,QAAA,CAAIG,GAAI,CAAEwB,QAAS,OAAQC,WAAY,SAAUW,IAAK,GACrD1C,SAAAlF,mBACAmG,KAAA0B,EAAAA,SAAA,CACC3C,SAAA;eAAAJ,EAAAA,IAACgD,EAAAA,QAAA,CAAiBC,uBACjBjD,EAAAA,IAACkD,EAAAA,SAAA,CACAzB,QAAShC,GACT0D,eAAgB1H,IAChB2F,qBAAOpB,EAAAA,IAACkB,EAAAA,WAAA,CAAWhE,KAAK,KAAKiE,MAAM,uBAAuBf,SAAA;eAC5DJ,MAACoD,EAAAA,SAAYC,KAAK,QAAQ3C,GAAI,CAAE4C,SAAU,KACzClD,wBAAAJ,EAAAA,IAACuD,EAAAA,OAAA,CACAC,cAAY,EACZ3D,MAAM,GACNwD,KAAK,QACLI,YAAa,IAAM,qBACnB/C,GAAI,CACHhE,QAAS,QACTD,aAAc,EACd,sBAAuB,CAAEkE,GAAI,MAE9B+C,SAAU9D,GACTQ,SAAAU;sBAGFP,EAAAA,QAAA,CACAH,SAAA;eAAAJ,EAAAA,IAAC2D,EAAAA,QAAA,CAAWN,KAAK,QAAQ5B,QAASjE,GACjC4C,0BAAAJ,IAAC4D,EAAAA,KAAA,CAAKhB,SAAS,QAAQzB,MAAM;eAE9BnB,EAAAA,IAAC2D,EAAAA,QAAA,CAAWN,KAAK,QAAQ5B,QAASjC,GAAkB2B,MAAM,QACzDf,wBAAAJ,EAAAA,IAAC6D,EAAAA,QAAA,CAAMjB,SAAS,QAAQzB,MAAM,mCAKjCnB,EAAAA,IAAC8D,UAAA,CAAKC,GAAI1I,GAAaxB,EAAYmK,QAAS,IAC3C5D,wBAAAiB,EAAAA,KAACd,EAAAA,QAAA,CAAIG,GAAI,CAAEwB,QAAS,OAAQY,IAAK,IAC/B1C,SAAA,EAAA,MAAAxG,OAAA,EAAAA,EAASgC,uCACToE,EAAAA,IAACiE,EAAAA,KAAA,CACA7C,MAAM,qBACNiC,KAAK,QACL3C,GAAKwD,gBAAW,MAAA,CACfC,cAAe,aACfC,gBAAiB,OAAAC,EAAA,OAAAjG,EAAA8F,EAAMI,QAAQJ,YAAd,EAAA9F,EAAqBmG,gBAArB,EAAAF,EAAiC,KAClDlD,MAAO,OAAAqD,EAAA,OAAAC,EAAAP,EAAMI,QAAQJ,YAAd,EAAAO,EAAqBF,gBAArB,EAAAC,EAAiC,SAI1ChL,EAAiByD,SAASrD,EAAQsD,sBAClC8C,EAAAA,IAAC2D,EAAAA,QAAA,CACAN,KAAK,QACL5B,QAAStE,GACTuD,GAAI,CACHhE,QAAS,WACT,UAAW,CAAEA,QAAS,aAEvB0D,wBAAAJ,EAAAA,IAAC0E,EAAAA,MAAK9B,SAAS,QAAQlC,GAAI,CAAES,MAAO;eAGtCnB,EAAAA,IAAC2D,EAAAA,QAAA,CACAN,KAAK,QACL5B,QAASnD,GACToC,GAAI,CACHhE,QAAS,WACT,UAAW,CAAEA,QAAS,YACtBC,QAAiC,MAAxB,MAAA/C,OAAA,EAAAA,EAAS+K,YAAoB,GAAM,GAE7CC,SAAkC,YAAxBhL,WAAS+K,YAEnBvE,wBAAAJ,EAAAA,IAAC6E,UAAA,CAAUjC,SAAS,QAAQzB,MAAM;eAEnCnB,EAAAA,IAAC2D,EAAAA,QAAA,CACAN,KAAK,QACL5B,QAASlC,GACTmB,GAAI,CACHhE,QAAS,WACT,UAAW,CAAEA,QAAS,aAEvB0D,wBAAAJ,EAAAA,IAAC8E,EAAAA,OAAMlC,SAAS,QAAQlC,GAAI,CAAES,MAAO;eAO3CE,OAACd,EAAAA,SAAIG,GAAI,CAAE6B,EAAG,EAAG7F,QAAS,SACzB0D,SAAA;eAAAJ,MAAC,QAAA,CACOI,SAAA,0aAgBPL,MAEDxE,kBAA0ByE,EAAAA,IAAC+E,EAAAA,QAAA,CAC3BC,OAAQzJ,EACR0J,UAAWzJ,EACXpB,eACAoD,cACAe,wBACAlB,qBACAzD,iBAMJH,EAAcyL,YAAc"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/EditorSection.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useRef, useState, lazy, Suspense, useCallback, useMemo } from 'react';\r\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\r\nimport {\r\n\tBox,\r\n\tPaper,\r\n\tMenuItem,\r\n\tFormControl,\r\n\tIconButton,\r\n\tFade,\r\n\tFormControlLabel,\r\n\tSkeleton\r\n} from '@mui/material';\r\nimport DragIndicatorIcon from '@mui/icons-material/DragIndicator';\r\nimport SplitIcon from '@mui/icons-material/CallSplit';\r\nimport { SectionData } from '../types/editor';\r\nimport { Edit, Save, Trash } from '../../../components/icons';\r\nimport Select from '../../../components/select/select';\r\nimport Typography from '../../../components/typography/typography';\r\nimport EditSectionModal from '../edit-section-modal/edit-section-modal';\r\nimport Checkbox from '../../../components/checkbox/checkbox';\r\nimport Chip from '../../../components/chip/chip';\r\nimport Close from '@mui/icons-material/Close';\r\nimport { useCKEditorStyleExtractor } from '../utils/style-extractor';\r\n\r\nconst CustomEditor = lazy(() => import('../../../components/editor/custom-editor'));\r\n\r\ninterface EditorSectionProps {\r\n\tsection: SectionData;\r\n\tisSelected: boolean;\r\n\tisDragging: boolean;\r\n\tisOver: boolean;\r\n\tonSelect: () => void;\r\n\tonUpdate: (content: string, options?: any) => void;\r\n\tonSplit: (content1: string, content2: string) => void;\r\n\tonDelete: () => void;\r\n\tplaceholders: Array<{ value: string; label: string }>;\r\n\tsetIsSectionEditing:(value: boolean)=> void;\r\n}\r\n\r\nconst editableSections = ['text', 'text-block', 'heading', 'heading-1', 'heading-2', 'heading-3', 'heading-4'];\r\n\r\nconst EditorSection: React.FC<EditorSectionProps> = React.memo(({\r\n\tsection,\r\n\tisSelected,\r\n\tisDragging,\r\n\tisOver,\r\n\tonSelect,\r\n\tonUpdate,\r\n\tonSplit,\r\n\tonDelete,\r\n\tplaceholders,\r\n\tsetIsSectionEditing\r\n}) => {\r\n\tconst { extractStyles, getSingleStyles } = useCKEditorStyleExtractor();\r\n\r\n\tconst {\r\n\t\tattributes,\r\n\t\tlisteners,\r\n\t\tsetNodeRef: setDraggableRef,\r\n\t\ttransform\r\n\t} = useDraggable({ id: section.id });\r\n\r\n\tconst { setNodeRef: setDroppableRef } = useDroppable({ id: section.id });\r\n\tconst [isEditing, setIsEditing] = useState(false);\r\n\tconst [isHovered, setIsHovered] = useState(false);\r\n\tconst [isOpenEditSectionModal, setIsOpenEditSectionModal] = useState(false);\r\n\tconst [isEditedFromSource, setIsEditedFromSource] = useState(Boolean(section?.is_edited_from_source));\r\n\tconst editorRef = useRef<any>(null);\r\n\tconst mouseHoverTimeoutRef = useRef<number | null>(null);\r\n\r\n\t// Memoize style calculation\r\n\tconst style = useMemo(() => {\r\n\t\treturn transform\r\n\t\t\t? {\r\n\t\t\t\t\ttransform: `translate3d(${transform.x}px, ${transform.y}px, 0)`,\r\n\t\t\t\t\ttransition: 'none'\r\n\t\t\t\t}\r\n\t\t\t: { transition: 'all 0.2s ease' };\r\n\t}, [transform]);\r\n\r\n\t// Memoize sx prop for Paper to prevent re-creation\r\n\tconst paperSx = useMemo(() => ({\r\n\t\tposition: 'relative',\r\n\t\tborder: '1px dashed',\r\n\t\tborderColor: isSelected ? 'primary.main' : isOver ? 'primary.main' : 'grey.400',\r\n\t\tborderRadius: 1,\r\n\t\tbgcolor: 'white',\r\n\t\topacity: isDragging ? 0.7 : 1,\r\n\t\tboxShadow: 'none',\r\n\t\ttransition: 'all 0.2s ease',\r\n\t\t'&:hover': {\r\n\t\t\tboxShadow: 'none'\r\n\t\t},\r\n\t\t...(isOver && { borderColor: 'primary.main', boxShadow: 'none' })\r\n\t}), [isSelected, isOver, isDragging]);\r\n\r\n\t// Memoize merged ref to prevent re-creation\r\n\tconst mergedRef = useCallback((node: HTMLElement | null) => {\r\n\t\tsetDraggableRef(node);\r\n\t\tsetDroppableRef(node);\r\n\t}, [setDraggableRef, setDroppableRef]);\r\n\r\n\t// Memoize event handlers\r\n\tconst handleDblClick = useCallback(() => {\r\n\t\tif (editableSections.includes(section.type)) {\r\n\t\t\thandleEditing();\r\n\t\t}\r\n\t}, [section.type]);\r\n\r\n\tconst handleEditing = useCallback(() => {\r\n\t\tif (section?.isSplitPair) {\r\n\t\t\tsetIsOpenEditSectionModal(true);\r\n\t\t} else {\r\n\t\t\tsetIsEditing(true);\r\n\t\t\tsetIsSectionEditing(true);\r\n\t\t}\r\n\t}, [section?.isSplitPair]);\r\n\r\n\tconst handleEditorReady = useCallback((editor: any) => {\r\n\t\teditorRef.current = editor;\r\n\t}, []);\r\n\r\n\tconst handleSave = useCallback((e) => {\r\n\t\te.stopPropagation();\r\n\t\tif (editorRef.current) {\r\n\t\t\tconst content = editorRef.current.getData();\r\n\t\t\tconst styles = extractStyles(section.content, {\r\n\t\t\t\tincludeTagStyles: true,\r\n\t\t\t\tincludeInlineStyles: true,\r\n\t\t\t\tmergeNestedStyles: true,\r\n\t\t\t\tfilterEmptyStyles: true\r\n\t\t\t});\r\n\t\t\tconst single = getSingleStyles(styles);\r\n\t\t\t// Merge styles safely\r\n\t\t\tconst mergedStyles = {\r\n\t\t\t\t...(section.attributes?.styles || {}),\r\n\t\t\t\t...single\r\n\t\t\t};\r\n\t\r\n\t\t\t// Merge attributes, giving priority to new props\r\n\t\t\tconst mergedAttributes = {\r\n\t\t\t\t...(section.attributes || {}),\r\n\t\t\t\tstyles: mergedStyles,\r\n\t\t\t};\r\n\t\t\tonUpdate(content, { is_edited_from_source: isEditedFromSource, attributes: mergedAttributes });\r\n\t\t}\r\n\t\tsetIsEditing(false);\r\n\t\tsetIsSectionEditing(false)\r\n\t\tsetIsOpenEditSectionModal(false);\r\n\t}, [onUpdate, isEditedFromSource]);\r\n\r\n\tconst handleSplit = useCallback(() => {\r\n\t\tconst content = section.content || '';\r\n\t\tconst firstHalf = content;\r\n\t\tconst secondHalf = '';\r\n\t\tonSplit(firstHalf, secondHalf);\r\n\t}, [section.content, onSplit]);\r\n\r\n\tconst handleAddPlaceholder = useCallback((placeholder: string) => {\r\n\t\tif (editorRef.current) {\r\n\t\t\tconst viewFragment = editorRef.current.data.processor.toView(\r\n\t\t\t\t`{{${placeholder}}}`\r\n\t\t\t);\r\n\t\t\tconst modelFragment = editorRef.current.data.toModel(viewFragment);\r\n\t\t\teditorRef.current.model.insertContent(modelFragment);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tconst handleMouseEnter = useCallback(() => {\r\n\t\tif (mouseHoverTimeoutRef.current !== null) {\r\n\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\r\n\t\t}\r\n\t\tmouseHoverTimeoutRef.current = window.setTimeout(() => {\r\n\t\t\tsetIsHovered(true);\r\n\t\t}, 50);\r\n\t}, []);\r\n\r\n\tconst handleMouseLeave = useCallback(() => {\r\n\t\tif (mouseHoverTimeoutRef.current !== null) {\r\n\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\r\n\t\t}\r\n\t\tmouseHoverTimeoutRef.current = window.setTimeout(() => {\r\n\t\t\tsetIsHovered(false);\r\n\t\t}, 50);\r\n\t}, []);\r\n\r\n\tconst handleClick = useCallback((e) => {\r\n\t\te.stopPropagation();\r\n\t\tonSelect();\r\n\t}, [onSelect]);\r\n\r\n\tconst handleDeleteClick = useCallback((e) => {\r\n\t\te.stopPropagation();\r\n\t\tonDelete();\r\n\t}, [onDelete]);\r\n\r\n\tconst handleCancelEdit = useCallback(() => {\r\n\t\tsetIsEditing(false);\r\n\t\tsetIsSectionEditing(false)\r\n\t}, []);\r\n\r\n\tconst handleCheckboxChange = useCallback((e) => {\r\n\t\tsetIsEditedFromSource(e.target.checked);\r\n\t}, []);\r\n\r\n\tconst handleSelectChange = useCallback((e) => {\r\n\t\tif (e.target.value) {\r\n\t\t\thandleAddPlaceholder(e.target.value as string);\r\n\t\t\te.target.value = '';\r\n\t\t}\r\n\t}, [handleAddPlaceholder]);\r\n\r\n\t// Cleanup function for hover timeout\r\n\tReact.useEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tif (mouseHoverTimeoutRef.current !== null) {\r\n\t\t\t\twindow.clearTimeout(mouseHoverTimeoutRef.current);\r\n\t\t\t}\r\n\t\t};\r\n\t}, []);\r\n\r\n\t// Memoize content rendering to prevent unnecessary re-renders\r\n\tconst contentRenderer = useMemo(() => {\r\n\t\tif (isEditing) {\r\n\t\t\treturn (\r\n\t\t\t\t<Suspense fallback={<Skeleton />}>\r\n\t\t\t\t\t<CustomEditor \r\n\t\t\t\t\t\teditorRef={editorRef}\r\n\t\t\t\t\t\thandleEditorReady={handleEditorReady} \r\n\t\t\t\t\t\tdata={section.content}\r\n\t\t\t\t\t\tonError={(error) => console.error('Editor error:', error)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Suspense>\r\n\t\t\t);\r\n\t\t}\r\n\t\t\r\n\t\treturn (\r\n\t\t\t<Box\r\n\t\t\t\tdangerouslySetInnerHTML={{ __html: section.content }}\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tposition: 'relative',\r\n\t\t\t\t\tpy: section.type === 'divider' ? 1 : 0,\r\n\t\t\t\t\tlineHeight: 1.6,\r\n\t\t\t\t\t'& p': { margin: 0 }\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t);\r\n\t}, [isEditing, section.content, section.type, handleEditorReady]);\r\n\r\n\t// Memoize placeholder options\r\n\tconst placeholderOptions = useMemo(() => \r\n\t\tplaceholders.map((option) => (\r\n\t\t\t<MenuItem key={option.value} value={option.value}>\r\n\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>{option.label}</Typography>\r\n\t\t\t</MenuItem>\r\n\t\t))\r\n\t, [placeholders]);\r\n\r\n\treturn (\r\n\t\t<Paper\r\n\t\t\tref={mergedRef}\r\n\t\t\tstyle={style}\r\n\t\t\televation={isHovered || isSelected ? 3 : 1}\r\n\t\t\tsx={paperSx}\r\n\t\t\tonClick={handleClick}\r\n\t\t\tonDoubleClick={handleDblClick}\r\n\t\t\tonMouseEnter={handleMouseEnter}\r\n\t\t\tonMouseLeave={handleMouseLeave}>\r\n\t\t\t{isOver && !isDragging && (\r\n\t\t\t\t<Box\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\tright: 0,\r\n\t\t\t\t\t\tbottom: 0,\r\n\t\t\t\t\t\tborder: '2px dashed',\r\n\t\t\t\t\t\tborderColor: 'primary.main',\r\n\t\t\t\t\t\tborderRadius: 1,\r\n\t\t\t\t\t\tbgcolor: 'rgba(25, 118, 210, 0.04)',\r\n\t\t\t\t\t\tzIndex: 10,\r\n\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\tjustifyContent: 'center',\r\n\t\t\t\t\t\tpointerEvents: 'none'\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Typography type='s2' color='primary' weight='medium'>Drop here</Typography>\r\n\t\t\t\t</Box>\r\n\t\t\t)}\r\n\t\t\t<Box\r\n\t\t\t\tsx={{\r\n\t\t\t\t\tbgcolor: 'grey.50',\r\n\t\t\t\t\tp: 1,\r\n\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\tjustifyContent: 'space-between',\r\n\t\t\t\t\tborderBottom: '1px solid',\r\n\t\t\t\t\tborderColor: 'grey.200'\r\n\t\t\t\t}}>\r\n\t\t\t\t<Box\r\n\t\t\t\t\t{...listeners}\r\n\t\t\t\t\t{...attributes}\r\n\t\t\t\t\tsx={{\r\n\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\talignItems: 'center',\r\n\t\t\t\t\t\tcursor: 'grab',\r\n\t\t\t\t\t\tpx: 1,\r\n\t\t\t\t\t\tpy: 0.5,\r\n\t\t\t\t\t\tborderRadius: 1,\r\n\t\t\t\t\t\ttransition: 'background-color 0.2s ease',\r\n\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.100' },\r\n\t\t\t\t\t\t'&:active': { cursor: 'grabbing' }\r\n\t\t\t\t\t}}>\r\n\t\t\t\t\t<DragIndicatorIcon\r\n\t\t\t\t\t\tsx={{ color: 'grey.600', fontSize: '1.2rem', mr: 0.5 }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<Typography type='s3' color='theme.secondary.600' weight='medium'>Move</Typography>\r\n\t\t\t\t</Box>\r\n\t\t\t\t<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\r\n\t\t\t\t\t{isEditing ? (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<FormControlLabel control={\r\n\t\t\t\t\t\t\t\t<Checkbox \r\n\t\t\t\t\t\t\t\t\tonClick={handleCheckboxChange} \r\n\t\t\t\t\t\t\t\t\tdefaultChecked={isEditedFromSource}/>} \r\n\t\t\t\t\t\t\t\t\tlabel={<Typography type='s2' color='theme.secondary.1000'>Edited from source</Typography>} />\r\n\t\t\t\t\t\t\t<FormControl size='small' sx={{ minWidth: 160 }}>\r\n\t\t\t\t\t\t\t\t<Select\r\n\t\t\t\t\t\t\t\t\tdisplayEmpty\r\n\t\t\t\t\t\t\t\t\tvalue=''\r\n\t\t\t\t\t\t\t\t\tsize='small'\r\n\t\t\t\t\t\t\t\t\trenderValue={() => 'Add placeholder...'}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tbgcolor: 'white',\r\n\t\t\t\t\t\t\t\t\t\tborderRadius: 1,\r\n\t\t\t\t\t\t\t\t\t\t'& .MuiSelect-select': { py: 0.75 }\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tonChange={handleSelectChange}>\r\n\t\t\t\t\t\t\t\t\t{placeholderOptions}\r\n\t\t\t\t\t\t\t\t</Select>\r\n\t\t\t\t\t\t\t</FormControl>\r\n\t\t\t\t\t\t\t<Box>\r\n\t\t\t\t\t\t\t\t<IconButton size='small' onClick={handleSave}>\r\n\t\t\t\t\t\t\t\t\t<Save fontSize='small' color='inherit' />\r\n\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t<IconButton size='small' onClick={handleCancelEdit} color='error'>\r\n\t\t\t\t\t\t\t\t\t<Close fontSize='small' color='inherit' />\r\n\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t<Fade in={isHovered || isSelected} timeout={200}>\r\n\t\t\t\t\t\t\t<Box sx={{ display: 'flex', gap: 0.5 }}>\r\n\t\t\t\t\t\t\t\t{section?.is_edited_from_source && (\r\n\t\t\t\t\t\t\t\t\t<Chip\r\n\t\t\t\t\t\t\t\t\t\tlabel=\"Edited From Source\"\r\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t\t\t\t\tsx={(theme) => ({ \r\n\t\t\t\t\t\t\t\t\t\t\ttextTransform: 'capitalize', \r\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: theme.palette.theme?.tertiary1?.[200], \r\n\t\t\t\t\t\t\t\t\t\t\tcolor: theme.palette.theme?.tertiary1?.[900]\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{editableSections.includes(section.type) &&\r\n\t\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\t\tsize='small'\r\n\t\t\t\t\t\t\t\t\t\tonClick={handleEditing}\r\n\t\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\r\n\t\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' }\r\n\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\t<Edit fontSize='small' sx={{ color: 'theme.secondary.1000' }} />\r\n\t\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\tsize='small'\r\n\t\t\t\t\t\t\t\t\tonClick={handleSplit}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\r\n\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' },\r\n\t\t\t\t\t\t\t\t\t\topacity: section?.splitWidth === 25 ? 0.5 : 1\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tdisabled={section?.splitWidth === 25}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<SplitIcon fontSize='small' color='primary' />\r\n\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\t\tsize='small'\r\n\t\t\t\t\t\t\t\t\tonClick={handleDeleteClick}\r\n\t\t\t\t\t\t\t\t\tsx={{\r\n\t\t\t\t\t\t\t\t\t\tbgcolor: 'grey.100',\r\n\t\t\t\t\t\t\t\t\t\t'&:hover': { bgcolor: 'grey.200' }\r\n\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t<Trash fontSize='small' sx={{ color: 'theme.error.500' }} />\r\n\t\t\t\t\t\t\t\t</IconButton>\r\n\t\t\t\t\t\t\t</Box>\r\n\t\t\t\t\t\t</Fade>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Box>\r\n\t\t\t</Box>\r\n\t\t\t<Box sx={{ p: 3, bgcolor: 'white' }}>\r\n\t\t\t\t<style>\r\n {`\r\n .ck.ck-toolbar.ck-toolbar_floating {\r\n display: none;\r\n }\r\n .ck.ck-toolbar.ck-toolbar_floating.visible {\r\n display: flex;\r\n }\r\n\t\t\t\t\t\ta {\r\n\t\t\t\t\t\t\tcolor: #007bff !important;\r\n\t\t\t\t\t\t\ttext-decoration: none !important;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ta:hover {\r\n\t\t\t\t\t\t\ttext-decoration: underline;\r\n\t\t\t\t\t\t}\r\n `}\r\n </style>\r\n\t\t\t\t{contentRenderer}\r\n\t\t\t</Box>\r\n\t\t\t{isOpenEditSectionModal && <EditSectionModal\r\n\t\t\t\tisOpen={isOpenEditSectionModal}\r\n\t\t\t\tsetIsOpen={setIsOpenEditSectionModal}\r\n\t\t\t\tplaceholders={placeholders}\r\n\t\t\t\thandleSave={handleSave}\r\n\t\t\t\thandleAddPlaceholder={handleAddPlaceholder}\r\n\t\t\t\thandleEditorReady={handleEditorReady}\r\n\t\t\t\tsection={section}\r\n\t\t\t/>}\r\n\t\t</Paper>\r\n\t);\r\n});\r\n\r\nEditorSection.displayName = 'EditorSection';\r\n\r\nexport default EditorSection;"],"names":["CustomEditor","lazy","Promise","resolve","then","require","editableSections","EditorSection","React","memo","section","isSelected","isDragging","isOver","onSelect","onUpdate","onSplit","onDelete","placeholders","setIsSectionEditing","extractStyles","getSingleStyles","useCKEditorStyleExtractor","attributes","listeners","setNodeRef","setDraggableRef","transform","useDraggable","id","setDroppableRef","useDroppable","isEditing","setIsEditing","useState","isHovered","setIsHovered","isOpenEditSectionModal","setIsOpenEditSectionModal","isEditedFromSource","setIsEditedFromSource","Boolean","is_edited_from_source","editorRef","useRef","mouseHoverTimeoutRef","style","useMemo","x","y","transition","paperSx","position","border","borderColor","borderRadius","bgcolor","opacity","boxShadow","mergedRef","useCallback","node","handleDblClick","includes","type","handleEditing","isSplitPair","handleEditorReady","editor","current","handleSave","e","stopPropagation","content","getData","styles","includeTagStyles","includeInlineStyles","mergeNestedStyles","filterEmptyStyles","single","mergedStyles","_a","mergedAttributes","handleSplit","handleAddPlaceholder","placeholder","viewFragment","data","processor","toView","modelFragment","toModel","model","insertContent","handleMouseEnter","window","clearTimeout","setTimeout","handleMouseLeave","handleClick","handleDeleteClick","handleCancelEdit","handleCheckboxChange","target","checked","handleSelectChange","value","useEffect","contentRenderer","jsx","Suspense","fallback","Skeleton","children","onError","error","Box","dangerouslySetInnerHTML","__html","sx","py","lineHeight","margin","placeholderOptions","map","option","MenuItem","Typography","color","label","jsxs","Paper","ref","elevation","onClick","onDoubleClick","onMouseEnter","onMouseLeave","top","left","right","bottom","zIndex","display","alignItems","justifyContent","pointerEvents","weight","p","borderBottom","cursor","px","DragIndicatorIcon","fontSize","mr","gap","Fragment","FormControlLabel","control","Checkbox","defaultChecked","FormControl","size","minWidth","Select","displayEmpty","renderValue","onChange","IconButton","Save","Close","Fade","in","timeout","Chip","theme","textTransform","backgroundColor","_b","palette","tertiary1","_d","_c","Edit","splitWidth","disabled","SplitIcon","Trash","EditSectionModal","isOpen","setIsOpen","displayName"],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ import AccordionDetails from "../../../../node_modules/@mui/material/AccordionDe
|
|
|
26
26
|
import ListItemIcon from "../../../../node_modules/@mui/material/ListItemIcon/ListItemIcon/index.esm.js";
|
|
27
27
|
import ListItemText from "../../../../node_modules/@mui/material/ListItemText/ListItemText/index.esm.js";
|
|
28
28
|
import ListItem from "../../../../node_modules/@mui/material/ListItem/ListItem/index.esm.js";
|
|
29
|
-
setBaseUrl(`${"
|
|
29
|
+
setBaseUrl(`${"https://apidev.erpforce.co"}/document`);
|
|
30
30
|
const StyledListItem = styled(ListItem)(({ theme }) => ({
|
|
31
31
|
padding: theme.spacing(1.5),
|
|
32
32
|
cursor: "grab",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useCallback, useEffect } from 'react';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useDropzone } from 'react-dropzone';\nimport {\n Box,\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n Grid,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n CircularProgress,\n Alert,\n} from '@mui/material';\nimport {\n Heading,\n Text as TextIcon,\n Image as ImageIcon,\n Table as TableIcon,\n Blocks as SignatureIcon,\n QrCode as QrCodeIcon,\n Barcode as BarcodeIcon,\n} from 'lucide-react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\nimport SearchBar from '../../../components/search-bar/search-bar';\nimport { getToken, uploadFiles } from '../../../utils/common';\n\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\n\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\n padding: theme.spacing(1.5),\n cursor: 'grab',\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n '&.dragging': {\n opacity: 0.5,\n },\n}));\n\nconst DropzoneBox = styled(Box)(({ theme }) => ({\n border: `2px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n textAlign: 'center',\n backgroundColor: theme.palette.grey[50],\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n}));\n\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\n // Extract the element type from the sidebar item id\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\n \n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n data: {\n // Pass the correct type based on the id\n type: imageUrl ? 'image' : elementType,\n imageUrl,\n label,\n },\n });\n \n return (\n <StyledListItem\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n className={isDragging ? 'dragging' : ''}\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\n >\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={label}\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\n />\n ) : (\n <>\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\n </>\n )}\n </StyledListItem>\n );\n};\n\nconst EditorSidebar = () => {\n const [expanded, setExpanded] = useState('text');\n const [uploadedImages, setUploadedImages] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const onDrop = useCallback(async (acceptedFiles) => {\n setUploading(true);\n setError(null);\n try {\n for (const file of acceptedFiles) {\n const uFiles = await uploadFiles([file], \"document\");\n const token = getToken();\n const payload = {\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n \"title\": file?.name.split(\".\")[0],\n \"path\": \"/\",\n \"is_private\": true,\n \"is_directory\": false,\n \"file_size\": file.size,\n \"is_child\": false,\n \"file_extension\": file?.name.split(\".\")[1],\n \"type\": \"image\",\n \"mime_type\": file.type,\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\n }\n // Replace with your actual API endpoint\n await postV1Drive(payload);\n\n setUploadedImages((prev) => [\n ...prev,\n {\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\n name: file.name,\n },\n ]);\n }\n } catch (err) {\n setError('Failed to upload image. Please try again.');\n } finally {\n setUploading(false);\n }\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\n multiple: true,\n });\n\n const sections = [\n {\n id: 'text',\n icon: <TextIcon size={18} />,\n label: 'Text',\n content: (\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\n </Box>\n ),\n },\n {\n id: 'images',\n icon: <ImageIcon size={18} />,\n label: 'Images',\n content: (\n <Box sx={{ mt: 2 }}>\n <Box sx={{ mt: 2 }}>\n <DropzoneBox {...getRootProps()}>\n <input {...getInputProps()} />\n {isDragActive ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drop the images here...\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drag and drop images here, or click to select\n </Typography>\n )}\n {uploading && (\n <Box sx={{ mt: 1 }}>\n <CircularProgress size={20} />\n </Box>\n )}\n </DropzoneBox>\n {error && (\n <Alert severity=\"error\" sx={{ mt: 2 }}>\n {error}\n </Alert>\n )}\n {uploadedImages.length > 0 && (\n <Box sx={{ mt: 2 }}>\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\n Uploaded Images\n </Typography>\n <Grid container spacing={1}>\n {uploadedImages.map((image) => (\n <Grid item xs={6} key={image.id}>\n <SidebarItem\n id={image.id}\n label={image.name}\n imageUrl={image.url}\n />\n </Grid>\n ))}\n </Grid>\n </Box>\n )}\n </Box>\n </Box>\n ),\n },\n {\n id: 'buttons',\n icon: (\n <Box\n sx={{\n width: 16,\n height: 16,\n bgcolor: 'grey.400',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '8px',\n }}\n >\n BTN\n </Box>\n ),\n label: 'Buttons',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem\n id=\"sidebar-buttons\"\n icon={\n <Box\n sx={{\n width: 20,\n height: 20,\n bgcolor: 'success.main',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n }}\n >\n BTN\n </Box>\n }\n label=\"Buttons\"\n />\n </Box>\n ),\n },\n {\n id: 'divider',\n icon: <Divider sx={{ width: 18 }} />,\n label: 'Divider',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\n </Box>\n ),\n },\n {\n id: 'table',\n icon: <TableIcon size={18} />,\n label: 'Table',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\n </Box>\n ),\n },\n {\n id: 'signature',\n icon: <SignatureIcon size={18} />,\n label: 'Signature',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\n </Box>\n ),\n },\n {\n id: 'qr-code',\n icon: <QrCodeIcon size={18} />,\n label: 'QR Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\n </Box>\n ),\n },\n {\n id: 'bar-code',\n icon: <BarcodeIcon size={18} />,\n label: 'Bar Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\n </Box>\n ),\n },\n ];\n\n const getDriveFiles = async () => {\n try {\n const token = getToken();\n const response = await getV1Drive({\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n skip: 0,\n limit: 10,\n filters: `(is_directory.eq=0)`\n });\n // Check if response is successful and has data\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\n const files = (response.data as any).drive || [];\n setUploadedImages(files);\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n getDriveFiles()\n }, [])\n\n return (\n <Box\n sx={{\n bgcolor: 'background.paper',\n borderRight: 1,\n borderColor: 'grey.200',\n width: 390,\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 104px)',\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\n }}\n >\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\n <SearchBar \n handleSearch={(key) => console.log('Search:', key)}\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\n />\n </Box>\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\n {sections.map((section) => (\n <Accordion\n key={section.id}\n expanded={expanded === section.id}\n onChange={handleChange(section.id)}\n sx={{\n border: 'none',\n boxShadow: 'none',\n backgroundColor: 'transparent',\n '&:before': { display: 'none' },\n marginBottom: 1,\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\n sx={{\n borderRadius: '8px',\n padding: '0 12px',\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\n '&:hover': {\n backgroundColor: 'grey.50',\n },\n transition: 'background-color 0.2s ease',\n minHeight: 42,\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: '8px 0',\n },\n '&.Mui-expanded': {\n minHeight: 42,\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {section.icon}\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, color: 'text.primary' }}\n >\n {section.label}\n </Typography>\n </Box>\n </AccordionSummary>\n <AccordionDetails sx={{ padding: '8px 16px' }}>\n {section.content}\n </AccordionDetails>\n </Accordion>\n ))}\n </Box>\n </Box>\n );\n};\n\nexport { EditorSidebar };\nexport default EditorSidebar;"],"names":["setDriveUrl","TextIcon","ImageIcon","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","error","ExpandMoreIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCAA,WAAY,GAAG,uBAAqC,WAAW;AAE/D,MAAM,iBAAiB,OAAO,QAAQ,EAAE,CAAC,EAAE,aAAa;AAAA,EACtD,SAAS,MAAM,QAAQ,GAAG;AAAA,EAC1B,QAAQ;AAAA,EACR,cAAc,MAAM,MAAM;AAAA,EAC1B,WAAW;AAAA,IACT,iBAAiB,MAAM,QAAQ,KAAK,GAAG;AAAA,EAAA;AAAA,EAEzC,cAAc;AAAA,IACZ,SAAS;AAAA,EAAA;AAEb,EAAE;AAEF,MAAM,cAAc,OAAO,GAAG,EAAE,CAAC,EAAE,aAAa;AAAA,EAC9C,QAAQ,cAAc,MAAM,QAAQ,KAAK,GAAG,CAAC;AAAA,EAC7C,cAAc,MAAM,MAAM;AAAA,EAC1B,SAAS,MAAM,QAAQ,CAAC;AAAA,EACxB,WAAW;AAAA,EACX,iBAAiB,MAAM,QAAQ,KAAK,EAAE;AAAA,EACtC,QAAQ;AAAA,EACR,WAAW;AAAA,IACT,iBAAiB,MAAM,QAAQ,KAAK,GAAG;AAAA,EAAA;AAE3C,EAAE;AAEF,MAAM,cAAc,CAAC,EAAE,IAAI,MAAM,OAAO,eAA4F;AAElI,QAAM,cAAc,OAAO,OAAO,WAAW,GAAG,QAAQ,YAAY,EAAE,IAAI;AAE1E,QAAM,EAAE,YAAY,WAAW,YAAY,WAAA,IAAe,aAAa;AAAA,IACrE;AAAA,IACA,MAAM;AAAA;AAAA,MAEJ,MAAM,WAAW,UAAU;AAAA,MAC3B;AAAA,MACA;AAAA,IAAA;AAAA,EACF,CACD;AAED,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,WAAW,aAAa,aAAa;AAAA,MACrC,IAAI,EAAE,QAAQ,aAAa,aAAa,YAAY,GAAG,KAAA;AAAA,MAEtD,UAAA,WACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK;AAAA,UACL,KAAK;AAAA,UACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,KAAK,WAAW,SAAS,aAAa,EAAA;AAAA,QAAE;AAAA,MAAA,IAG1E,qBAAA,UAAA,EACE,UAAA;AAAA,QAAA,oBAAC,gBAAa,IAAI,EAAE,UAAU,GAAA,GAAO,UAAA,MAAK;AAAA,QAC1C,oBAAC,gBAAa,SAAS,OAAO,wBAAwB,EAAE,SAAS,UAAQ,CAAG;AAAA,MAAA,GAC9E;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,MAAM,gBAAgB,MAAM;AAC1B,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,MAAM;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,CAAA,CAAE;AACvD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AAEvC,QAAM,eAAe,CAAC,UAAU,CAAC,OAAO,eAAe;AACrD,gBAAY,aAAa,QAAQ,KAAK;AAAA,EACxC;AAEA,QAAM,SAAS,YAAY,OAAO,kBAAkB;AAClD,iBAAa,IAAI;AACjB,aAAS,IAAI;AACb,QAAI;AACF,iBAAW,QAAQ,eAAe;AAChC,cAAM,SAAS,MAAM,YAAY,CAAC,IAAI,GAAG,UAAU;AACnD,cAAM,QAAQ,SAAA;AACd,cAAM,UAAU;AAAA,UACd,GAAG;AAAA,UACH,cAAc,OAAO,MAAM,YAAY,KAAK,EAAE;AAAA,UAC9C,SAAS,6BAAM,KAAK,MAAM,KAAK;AAAA,UAC/B,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,gBAAgB;AAAA,UAChB,aAAa,KAAK;AAAA,UAClB,YAAY;AAAA,UACZ,kBAAkB,6BAAM,KAAK,MAAM,KAAK;AAAA,UACxC,QAAQ;AAAA,UACR,aAAa,KAAK;AAAA,UAClB,OAAO,GAAG,kDAAkC,GAAG,OAAO,CAAC,CAAC;AAAA,QAAA;AAG1D,cAAM,YAAY,OAAO;AAEzB,0BAAkB,CAAC,SAAS;AAAA,UAC1B,GAAG;AAAA,UACH;AAAA,YACE,IAAI,kBAAkB,KAAK,IAAA,CAAK,IAAI,KAAK,QAAQ;AAAA,YACjD,KAAK,GAAG,kDAAkC,GAAG,OAAO,CAAC,CAAC;AAAA;AAAA,YACtD,MAAM,KAAK;AAAA,UAAA;AAAA,QACb,CACD;AAAA,MACH;AAAA,IACF,SAAS,KAAK;AACZ,eAAS,2CAA2C;AAAA,IACtD,UAAA;AACE,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAM,EAAE,cAAc,eAAe,aAAA,IAAiB,YAAY;AAAA,IAChE;AAAA,IACA,QAAQ,EAAE,WAAW,CAAC,SAAS,QAAQ,QAAQ,MAAM,EAAA;AAAA,IACrD,UAAU;AAAA,EAAA,CACX;AAED,QAAM,WAAW;AAAA,IACf;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,oBAACC,MAAA,EAAS,MAAM,IAAI;AAAA,MAC1B,OAAO;AAAA,MACP,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,qBAAqB,kBAAkB,KAAK,EAAA,GACtE,UAAA;AAAA,QAAA,oBAAC,aAAA,EAAY,IAAG,mBAAkB,MAAM,oBAAC,WAAQ,MAAM,GAAA,CAAI,GAAI,OAAM,aAAY;AAAA,QACjF,oBAAC,aAAA,EAAY,IAAG,qBAAoB,MAAM,oBAAC,SAAA,EAAQ,MAAM,GAAA,CAAI,GAAI,OAAM,aAAY;AAAA,QACnF,oBAAC,aAAA,EAAY,IAAG,qBAAoB,MAAM,oBAAC,SAAA,EAAQ,MAAM,GAAA,CAAI,GAAI,OAAM,aAAY;AAAA,QACnF,oBAAC,aAAA,EAAY,IAAG,qBAAoB,MAAM,oBAAC,SAAA,EAAQ,MAAM,GAAA,CAAI,GAAI,OAAM,aAAY;AAAA,QACnF,oBAAC,aAAA,EAAY,IAAG,gBAAe,MAAM,oBAACA,MAAA,EAAS,MAAM,GAAA,CAAI,GAAI,OAAM,QAAO;AAAA,QAC1E,oBAAC,aAAA,EAAY,IAAG,sBAAqB,MAAM,oBAACA,MAAA,EAAS,MAAM,GAAA,CAAI,GAAI,OAAM,cAAa;AAAA,MAAA,GACxF;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,oBAACC,OAAA,EAAU,MAAM,IAAI;AAAA,MAC3B,OAAO;AAAA,MACP,SACE,oBAAC,KAAA,EAAI,IAAI,EAAE,IAAI,EAAA,GACb,UAAA,qBAAC,KAAA,EAAI,IAAI,EAAE,IAAI,EAAA,GACb,UAAA;AAAA,6BAAC,aAAA,EAAa,GAAG,aAAA,GACf,UAAA;AAAA,8BAAC,SAAA,EAAO,GAAG,cAAA,GAAiB;AAAA,UAC3B,mCACE,YAAA,EAAW,SAAQ,SAAQ,OAAM,kBAAiB,UAAA,0BAAA,CAEnD,wBAEC,YAAA,EAAW,SAAQ,SAAQ,OAAM,kBAAiB,UAAA,iDAEnD;AAAA,UAED,aACC,oBAAC,KAAA,EAAI,IAAI,EAAE,IAAI,EAAA,GACb,8BAAC,kBAAA,EAAiB,MAAM,GAAA,CAAI,GAC9B;AAAA,QAAA,GAEJ;AAAA,QACC,SACC,oBAAC,OAAA,EAAM,UAAS,SAAQ,IAAI,EAAE,IAAI,EAAA,GAC/B,UAAA,OACH;AAAA,QAED,eAAe,SAAS,KACvB,qBAAC,OAAI,IAAI,EAAE,IAAI,EAAA,GACb,UAAA;AAAA,UAAA,oBAAC,YAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,IAAI,GAAG,OAAO,WAAA,GAAc,UAAA,mBAE9D;AAAA,8BACC,MAAA,EAAK,WAAS,MAAC,SAAS,GACtB,UAAA,eAAe,IAAI,CAAC,8BAClB,MAAA,EAAK,MAAI,MAAC,IAAI,GACb,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI,MAAM;AAAA,cACV,OAAO,MAAM;AAAA,cACb,UAAU,MAAM;AAAA,YAAA;AAAA,UAAA,KAJG,MAAM,EAM7B,CACD,GACH;AAAA,QAAA,GACF;AAAA,MAAA,EAAA,CAEJ,EAAA,CACF;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,MACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,YACF,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,cAAc;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,UAAU;AAAA,UAAA;AAAA,UAEb,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAIH,OAAO;AAAA,MACP,6BACG,KAAA,EAAI,IAAI,EAAE,IAAI,KACb,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAG;AAAA,UACH,MACE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,gBACF,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,SAAS;AAAA,gBACT,cAAc;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,gBAAgB;AAAA,gBAChB,UAAU;AAAA,cAAA;AAAA,cAEb,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAIH,OAAM;AAAA,QAAA;AAAA,MAAA,GAEV;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,0BAAO,SAAA,EAAQ,IAAI,EAAE,OAAO,GAAA,GAAM;AAAA,MAClC,OAAO;AAAA,MACP,6BACG,KAAA,EAAI,IAAI,EAAE,IAAI,EAAA,GACb,UAAA,oBAAC,aAAA,EAAY,IAAG,mBAAkB,MAAM,oBAAC,SAAA,EAAQ,IAAI,EAAE,OAAO,GAAA,GAAM,GAAI,OAAM,UAAA,CAAU,GAC1F;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,oBAACC,OAAA,EAAU,MAAM,IAAI;AAAA,MAC3B,OAAO;AAAA,MACP,6BACG,KAAA,EAAI,IAAI,EAAE,IAAI,KACb,UAAA,oBAAC,aAAA,EAAY,IAAG,iBAAgB,0BAAOA,OAAA,EAAU,MAAM,GAAA,CAAI,GAAI,OAAM,QAAA,CAAQ,EAAA,CAC/E;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,oBAACC,QAAA,EAAc,MAAM,IAAI;AAAA,MAC/B,OAAO;AAAA,MACP,6BACG,KAAA,EAAI,IAAI,EAAE,IAAI,KACb,UAAA,oBAAC,aAAA,EAAY,IAAG,qBAAoB,0BAAOA,QAAA,EAAc,MAAM,GAAA,CAAI,GAAI,OAAM,YAAA,CAAY,EAAA,CAC3F;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,oBAACC,QAAA,EAAW,MAAM,IAAI;AAAA,MAC5B,OAAO;AAAA,MACP,6BACG,KAAA,EAAI,IAAI,EAAE,IAAI,KACb,UAAA,oBAAC,aAAA,EAAY,IAAG,mBAAkB,0BAAOA,QAAA,EAAW,MAAM,GAAA,CAAI,GAAI,OAAM,UAAA,CAAU,EAAA,CACpF;AAAA,IAAA;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,oBAACC,SAAA,EAAY,MAAM,IAAI;AAAA,MAC7B,OAAO;AAAA,MACP,6BACG,KAAA,EAAI,IAAI,EAAE,IAAI,KACb,UAAA,oBAAC,aAAA,EAAY,IAAG,oBAAmB,0BAAOA,SAAA,EAAY,MAAM,GAAA,CAAI,GAAI,OAAM,WAAA,CAAW,EAAA,CACvF;AAAA,IAAA;AAAA,EAEJ;AAGF,QAAM,gBAAgB,YAAY;AAChC,QAAI;AACF,YAAM,QAAQ,SAAA;AACd,YAAM,WAAW,MAAM,WAAW;AAAA,QAChC,GAAG;AAAA,QACH,cAAc,OAAO,MAAM,YAAY,KAAK,EAAE;AAAA,QAC9C,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MAAA,CACV;AAED,UAAI,UAAU,YAAY,SAAS,QAAQ,OAAO,SAAS,SAAS,YAAY,WAAW,SAAS,MAAM;AACxG,cAAM,QAAS,SAAS,KAAa,SAAS,CAAA;AAC9C,0BAAkB,KAAK;AAAA,MACzB;AAAA,IACF,SAASC,QAAO;AACd,cAAQ,IAAIA,MAAK;AAAA,IACnB;AAAA,EACF;AAEA,YAAU,MAAM;AACd,kBAAA;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,SAAS;AAAA,QACT,aAAa;AAAA,QACb,aAAa;AAAA,QACb,OAAO;AAAA,QACP,SAAS;AAAA,QACT,eAAe;AAAA,QACf,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,YAAY;AAAA,MAAA;AAAA,MAGd,UAAA;AAAA,QAAA,oBAAC,KAAA,EAAI,IAAI,EAAE,GAAG,GAAG,cAAc,GAAG,aAAa,WAAA,GAC7C,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,cAAc,CAAC,QAAQ,QAAQ,IAAI,WAAW,GAAG;AAAA,YACjD,IAAI,EAAE,iBAAiB,mBAAmB,QAAQ,iBAAA;AAAA,UAAiB;AAAA,QAAA,GAEvE;AAAA,4BACC,KAAA,EAAI,IAAI,EAAE,UAAU,GAAG,WAAW,QAAQ,GAAG,KAC3C,UAAA,SAAS,IAAI,CAAC,YACb;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,UAAU,aAAa,QAAQ;AAAA,YAC/B,UAAU,aAAa,QAAQ,EAAE;AAAA,YACjC,IAAI;AAAA,cACF,QAAQ;AAAA,cACR,WAAW;AAAA,cACX,iBAAiB;AAAA,cACjB,YAAY,EAAE,SAAS,OAAA;AAAA,cACvB,cAAc;AAAA,YAAA;AAAA,YAGhB,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,gCAAaC,WAAA,EAAe,IAAI,EAAE,OAAO,WAAA,GAAc;AAAA,kBACvD,IAAI;AAAA,oBACF,cAAc;AAAA,oBACd,SAAS;AAAA,oBACT,iBAAiB,aAAa,QAAQ,KAAK,aAAa;AAAA,oBACxD,WAAW;AAAA,sBACT,iBAAiB;AAAA,oBAAA;AAAA,oBAEnB,YAAY;AAAA,oBACZ,WAAW;AAAA,oBACX,kCAAkC;AAAA,sBAChC,YAAY;AAAA,sBACZ,QAAQ;AAAA,oBAAA;AAAA,oBAEV,kBAAkB;AAAA,sBAChB,WAAW;AAAA,oBAAA;AAAA,kBACb;AAAA,kBAGF,UAAA,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,KAAK,EAAA,GACpD,UAAA;AAAA,oBAAA,QAAQ;AAAA,oBACT;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAAQ;AAAA,wBACR,IAAI,EAAE,YAAY,KAAK,OAAO,eAAA;AAAA,wBAE7B,UAAA,QAAQ;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACX,GACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEF,oBAAC,oBAAiB,IAAI,EAAE,SAAS,cAC9B,kBAAQ,QAAA,CACX;AAAA,YAAA;AAAA,UAAA;AAAA,UA3CK,QAAQ;AAAA,QAAA,CA6ChB,GACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useState, useCallback, useEffect } from 'react';\r\nimport { useDraggable } from '@dnd-kit/core';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport {\r\n Box,\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Grid,\r\n Accordion,\r\n AccordionSummary,\r\n AccordionDetails,\r\n Typography,\r\n CircularProgress,\r\n Alert,\r\n} from '@mui/material';\r\nimport {\r\n Heading,\r\n Text as TextIcon,\r\n Image as ImageIcon,\r\n Table as TableIcon,\r\n Blocks as SignatureIcon,\r\n QrCode as QrCodeIcon,\r\n Barcode as BarcodeIcon,\r\n} from 'lucide-react';\r\nimport { styled } from '@mui/material/styles';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\r\nimport SearchBar from '../../../components/search-bar/search-bar';\r\nimport { getToken, uploadFiles } from '../../../utils/common';\r\n\r\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\r\n\r\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\r\n padding: theme.spacing(1.5),\r\n cursor: 'grab',\r\n borderRadius: theme.shape.borderRadius,\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n '&.dragging': {\r\n opacity: 0.5,\r\n },\r\n}));\r\n\r\nconst DropzoneBox = styled(Box)(({ theme }) => ({\r\n border: `2px dashed ${theme.palette.grey[400]}`,\r\n borderRadius: theme.shape.borderRadius,\r\n padding: theme.spacing(2),\r\n textAlign: 'center',\r\n backgroundColor: theme.palette.grey[50],\r\n cursor: 'pointer',\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n}));\r\n\r\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\r\n // Extract the element type from the sidebar item id\r\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\r\n \r\n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\r\n id,\r\n data: {\r\n // Pass the correct type based on the id\r\n type: imageUrl ? 'image' : elementType,\r\n imageUrl,\r\n label,\r\n },\r\n });\r\n \r\n return (\r\n <StyledListItem\r\n ref={setNodeRef}\r\n {...listeners}\r\n {...attributes}\r\n className={isDragging ? 'dragging' : ''}\r\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\r\n >\r\n {imageUrl ? (\r\n <img\r\n src={imageUrl}\r\n alt={label}\r\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\r\n />\r\n ) : (\r\n <>\r\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\r\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\r\n </>\r\n )}\r\n </StyledListItem>\r\n );\r\n};\r\n\r\nconst EditorSidebar = () => {\r\n const [expanded, setExpanded] = useState('text');\r\n const [uploadedImages, setUploadedImages] = useState([]);\r\n const [uploading, setUploading] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const handleChange = (panel) => (event, isExpanded) => {\r\n setExpanded(isExpanded ? panel : false);\r\n };\r\n\r\n const onDrop = useCallback(async (acceptedFiles) => {\r\n setUploading(true);\r\n setError(null);\r\n try {\r\n for (const file of acceptedFiles) {\r\n const uFiles = await uploadFiles([file], \"document\");\r\n const token = getToken();\r\n const payload = {\r\n ...token,\r\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\r\n \"title\": file?.name.split(\".\")[0],\r\n \"path\": \"/\",\r\n \"is_private\": true,\r\n \"is_directory\": false,\r\n \"file_size\": file.size,\r\n \"is_child\": false,\r\n \"file_extension\": file?.name.split(\".\")[1],\r\n \"type\": \"image\",\r\n \"mime_type\": file.type,\r\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\r\n }\r\n // Replace with your actual API endpoint\r\n await postV1Drive(payload);\r\n\r\n setUploadedImages((prev) => [\r\n ...prev,\r\n {\r\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\r\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\r\n name: file.name,\r\n },\r\n ]);\r\n }\r\n } catch (err) {\r\n setError('Failed to upload image. Please try again.');\r\n } finally {\r\n setUploading(false);\r\n }\r\n }, []);\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n onDrop,\r\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\r\n multiple: true,\r\n });\r\n\r\n const sections = [\r\n {\r\n id: 'text',\r\n icon: <TextIcon size={18} />,\r\n label: 'Text',\r\n content: (\r\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\r\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\r\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\r\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\r\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\r\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\r\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'images',\r\n icon: <ImageIcon size={18} />,\r\n label: 'Images',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <Box sx={{ mt: 2 }}>\r\n <DropzoneBox {...getRootProps()}>\r\n <input {...getInputProps()} />\r\n {isDragActive ? (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n Drop the images here...\r\n </Typography>\r\n ) : (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n Drag and drop images here, or click to select\r\n </Typography>\r\n )}\r\n {uploading && (\r\n <Box sx={{ mt: 1 }}>\r\n <CircularProgress size={20} />\r\n </Box>\r\n )}\r\n </DropzoneBox>\r\n {error && (\r\n <Alert severity=\"error\" sx={{ mt: 2 }}>\r\n {error}\r\n </Alert>\r\n )}\r\n {uploadedImages.length > 0 && (\r\n <Box sx={{ mt: 2 }}>\r\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\r\n Uploaded Images\r\n </Typography>\r\n <Grid container spacing={1}>\r\n {uploadedImages.map((image) => (\r\n <Grid item xs={6} key={image.id}>\r\n <SidebarItem\r\n id={image.id}\r\n label={image.name}\r\n imageUrl={image.url}\r\n />\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'buttons',\r\n icon: (\r\n <Box\r\n sx={{\r\n width: 16,\r\n height: 16,\r\n bgcolor: 'grey.400',\r\n borderRadius: 1,\r\n color: 'white',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '8px',\r\n }}\r\n >\r\n BTN\r\n </Box>\r\n ),\r\n label: 'Buttons',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem\r\n id=\"sidebar-buttons\"\r\n icon={\r\n <Box\r\n sx={{\r\n width: 20,\r\n height: 20,\r\n bgcolor: 'success.main',\r\n borderRadius: 1,\r\n color: 'white',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '10px',\r\n }}\r\n >\r\n BTN\r\n </Box>\r\n }\r\n label=\"Buttons\"\r\n />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'divider',\r\n icon: <Divider sx={{ width: 18 }} />,\r\n label: 'Divider',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'table',\r\n icon: <TableIcon size={18} />,\r\n label: 'Table',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'signature',\r\n icon: <SignatureIcon size={18} />,\r\n label: 'Signature',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'qr-code',\r\n icon: <QrCodeIcon size={18} />,\r\n label: 'QR Code',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'bar-code',\r\n icon: <BarcodeIcon size={18} />,\r\n label: 'Bar Code',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\r\n </Box>\r\n ),\r\n },\r\n ];\r\n\r\n const getDriveFiles = async () => {\r\n try {\r\n const token = getToken();\r\n const response = await getV1Drive({\r\n ...token,\r\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\r\n skip: 0,\r\n limit: 10,\r\n filters: `(is_directory.eq=0)`\r\n });\r\n // Check if response is successful and has data\r\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\r\n const files = (response.data as any).drive || [];\r\n setUploadedImages(files);\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getDriveFiles()\r\n }, [])\r\n\r\n return (\r\n <Box\r\n sx={{\r\n bgcolor: 'background.paper',\r\n borderRight: 1,\r\n borderColor: 'grey.200',\r\n width: 390,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: 'calc(100vh - 104px)',\r\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\r\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\r\n }}\r\n >\r\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\r\n <SearchBar \r\n handleSearch={(key) => console.log('Search:', key)}\r\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\r\n />\r\n </Box>\r\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\r\n {sections.map((section) => (\r\n <Accordion\r\n key={section.id}\r\n expanded={expanded === section.id}\r\n onChange={handleChange(section.id)}\r\n sx={{\r\n border: 'none',\r\n boxShadow: 'none',\r\n backgroundColor: 'transparent',\r\n '&:before': { display: 'none' },\r\n marginBottom: 1,\r\n }}\r\n >\r\n <AccordionSummary\r\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\r\n sx={{\r\n borderRadius: '8px',\r\n padding: '0 12px',\r\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\r\n '&:hover': {\r\n backgroundColor: 'grey.50',\r\n },\r\n transition: 'background-color 0.2s ease',\r\n minHeight: 42,\r\n '& .MuiAccordionSummary-content': {\r\n alignItems: 'center',\r\n margin: '8px 0',\r\n },\r\n '&.Mui-expanded': {\r\n minHeight: 42,\r\n },\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\r\n {section.icon}\r\n <Typography\r\n variant=\"body2\"\r\n sx={{ fontWeight: 500, color: 'text.primary' }}\r\n >\r\n {section.label}\r\n </Typography>\r\n </Box>\r\n </AccordionSummary>\r\n <AccordionDetails sx={{ padding: '8px 16px' }}>\r\n {section.content}\r\n </AccordionDetails>\r\n </Accordion>\r\n ))}\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\nexport { EditorSidebar };\r\nexport default EditorSidebar;"],"names":["setDriveUrl","TextIcon","ImageIcon","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","error","ExpandMoreIcon"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),r=require("../../../../node_modules/@dnd-kit/core/dist/core.esm/index.js"),d=require("react-dropzone"),t=require("../../../../node_modules/@mui/icons-material/ExpandMore/index.js"),a=require("../../../../api-client/api.drive/api/index.js"),s=require("../../../../components/search-bar/search-bar/index.js"),o=require("../../../../utils/common/index.js"),l=require("../../../../node_modules/@mui/material/Box/Box/index.js"),n=require("../../../../node_modules/lucide-react/dist/esm/icons/heading/index.js"),c=require("../../../../node_modules/lucide-react/dist/esm/icons/text/index.js"),u=require("../../../../node_modules/@mui/material/styles/styled/index.js"),x=require("../../../../node_modules/@mui/material/Typography/Typography/index.js"),m=require("../../../../node_modules/@mui/material/CircularProgress/CircularProgress/index.js"),g=require("../../../../node_modules/@mui/material/Alert/Alert/index.js"),p=require("../../../../node_modules/@mui/material/Grid/Grid/index.js"),j=require("../../../../node_modules/lucide-react/dist/esm/icons/image/index.js"),b=require("../../../../node_modules/@mui/material/Divider/Divider/index.js"),f=require("../../../../node_modules/lucide-react/dist/esm/icons/table/index.js"),h=require("../../../../node_modules/lucide-react/dist/esm/icons/blocks/index.js"),y=require("../../../../node_modules/lucide-react/dist/esm/icons/qr-code/index.js"),v=require("../../../../node_modules/lucide-react/dist/esm/icons/barcode/index.js"),q=require("../../../../node_modules/@mui/material/Accordion/Accordion/index.js"),_=require("../../../../node_modules/@mui/material/AccordionSummary/AccordionSummary/index.js"),z=require("../../../../node_modules/@mui/material/AccordionDetails/AccordionDetails/index.js"),C=require("../../../../node_modules/@mui/material/ListItemIcon/ListItemIcon/index.js"),w=require("../../../../node_modules/@mui/material/ListItemText/ListItemText/index.js"),k=require("../../../../node_modules/@mui/material/ListItem/ListItem/index.js");a.setBaseUrl("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),r=require("../../../../node_modules/@dnd-kit/core/dist/core.esm/index.js"),d=require("react-dropzone"),t=require("../../../../node_modules/@mui/icons-material/ExpandMore/index.js"),a=require("../../../../api-client/api.drive/api/index.js"),s=require("../../../../components/search-bar/search-bar/index.js"),o=require("../../../../utils/common/index.js"),l=require("../../../../node_modules/@mui/material/Box/Box/index.js"),n=require("../../../../node_modules/lucide-react/dist/esm/icons/heading/index.js"),c=require("../../../../node_modules/lucide-react/dist/esm/icons/text/index.js"),u=require("../../../../node_modules/@mui/material/styles/styled/index.js"),x=require("../../../../node_modules/@mui/material/Typography/Typography/index.js"),m=require("../../../../node_modules/@mui/material/CircularProgress/CircularProgress/index.js"),g=require("../../../../node_modules/@mui/material/Alert/Alert/index.js"),p=require("../../../../node_modules/@mui/material/Grid/Grid/index.js"),j=require("../../../../node_modules/lucide-react/dist/esm/icons/image/index.js"),b=require("../../../../node_modules/@mui/material/Divider/Divider/index.js"),f=require("../../../../node_modules/lucide-react/dist/esm/icons/table/index.js"),h=require("../../../../node_modules/lucide-react/dist/esm/icons/blocks/index.js"),y=require("../../../../node_modules/lucide-react/dist/esm/icons/qr-code/index.js"),v=require("../../../../node_modules/lucide-react/dist/esm/icons/barcode/index.js"),q=require("../../../../node_modules/@mui/material/Accordion/Accordion/index.js"),_=require("../../../../node_modules/@mui/material/AccordionSummary/AccordionSummary/index.js"),z=require("../../../../node_modules/@mui/material/AccordionDetails/AccordionDetails/index.js"),C=require("../../../../node_modules/@mui/material/ListItemIcon/ListItemIcon/index.js"),w=require("../../../../node_modules/@mui/material/ListItemText/ListItemText/index.js"),k=require("../../../../node_modules/@mui/material/ListItem/ListItem/index.js");a.setBaseUrl("https://apidev.erpforce.co/document");const S=u.default(k.default)(({theme:e})=>({padding:e.spacing(1.5),cursor:"grab",borderRadius:e.shape.borderRadius,"&:hover":{backgroundColor:e.palette.grey[100]},"&.dragging":{opacity:.5}})),D=u.default(l.default)(({theme:e})=>({border:`2px dashed ${e.palette.grey[400]}`,borderRadius:e.shape.borderRadius,padding:e.spacing(2),textAlign:"center",backgroundColor:e.palette.grey[50],cursor:"pointer","&:hover":{backgroundColor:e.palette.grey[100]}})),I=({id:i,icon:d,label:t,imageUrl:a})=>{const s="string"==typeof i?i.replace("sidebar-",""):i,{attributes:o,listeners:l,setNodeRef:n,isDragging:c}=r.useDraggable({id:i,data:{type:a?"image":s,imageUrl:a,label:t}});/* @__PURE__ */
|
|
2
2
|
return e.jsx(S,{ref:n,...l,...o,className:c?"dragging":"",sx:{border:"1px solid",borderColor:"grey.200",p:.75},children:a?/* @__PURE__ */e.jsx("img",{src:a,alt:t,style:{width:"100%",height:140,objectFit:"cover",marginRight:8}}):/* @__PURE__ */e.jsxs(e.Fragment,{children:[
|
|
3
3
|
/* @__PURE__ */e.jsx(C.default,{sx:{minWidth:40},children:d}),
|
|
4
4
|
/* @__PURE__ */e.jsx(w.default,{primary:t,primaryTypographyProps:{variant:"body2"}})]})})},B=()=>{const[r,u]=i.useState("text"),[C,w]=i.useState([]),[k,S]=i.useState(!1),[B,T]=i.useState(null),A=i.useCallback(async e=>{S(!0),T(null);try{for(const i of e){const e=await o.uploadFiles([i],"document"),r=o.getToken(),d={...r,"x-timezone":String(r["x-timezone"]||""),title:null==i?void 0:i.name.split(".")[0],path:"/",is_private:!0,is_directory:!1,file_size:i.size,is_child:!1,file_extension:null==i?void 0:i.name.split(".")[1],type:"image",mime_type:i.type,url:`https://erpforce-dev.s3.eu-west-1.amazonaws.com/${e[0]}`};await a.postV1Drive(d),w(r=>[...r,{id:`uploaded-image-${Date.now()}-${Math.random()}`,url:`https://erpforce-dev.s3.eu-west-1.amazonaws.com/${e[0]}`,name:i.name}])}}catch(i){T("Failed to upload image. Please try again.")}finally{S(!1)}},[]),{getRootProps:R,getInputProps:H,isDragActive:P}=d.useDropzone({onDrop:A,accept:{"image/*":[".jpeg",".png",".jpg",".gif"]},multiple:!0}),L=[{id:"text",icon:/* @__PURE__ */e.jsx(c.default,{size:18}),label:"Text",content:/* @__PURE__ */e.jsxs(l.default,{sx:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:1},children:[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useCallback, useEffect } from 'react';\nimport { useDraggable } from '@dnd-kit/core';\nimport { useDropzone } from 'react-dropzone';\nimport {\n Box,\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n Grid,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Typography,\n CircularProgress,\n Alert,\n} from '@mui/material';\nimport {\n Heading,\n Text as TextIcon,\n Image as ImageIcon,\n Table as TableIcon,\n Blocks as SignatureIcon,\n QrCode as QrCodeIcon,\n Barcode as BarcodeIcon,\n} from 'lucide-react';\nimport { styled } from '@mui/material/styles';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\nimport SearchBar from '../../../components/search-bar/search-bar';\nimport { getToken, uploadFiles } from '../../../utils/common';\n\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\n\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\n padding: theme.spacing(1.5),\n cursor: 'grab',\n borderRadius: theme.shape.borderRadius,\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n '&.dragging': {\n opacity: 0.5,\n },\n}));\n\nconst DropzoneBox = styled(Box)(({ theme }) => ({\n border: `2px dashed ${theme.palette.grey[400]}`,\n borderRadius: theme.shape.borderRadius,\n padding: theme.spacing(2),\n textAlign: 'center',\n backgroundColor: theme.palette.grey[50],\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n}));\n\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\n // Extract the element type from the sidebar item id\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\n \n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n data: {\n // Pass the correct type based on the id\n type: imageUrl ? 'image' : elementType,\n imageUrl,\n label,\n },\n });\n \n return (\n <StyledListItem\n ref={setNodeRef}\n {...listeners}\n {...attributes}\n className={isDragging ? 'dragging' : ''}\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\n >\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={label}\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\n />\n ) : (\n <>\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\n </>\n )}\n </StyledListItem>\n );\n};\n\nconst EditorSidebar = () => {\n const [expanded, setExpanded] = useState('text');\n const [uploadedImages, setUploadedImages] = useState([]);\n const [uploading, setUploading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const onDrop = useCallback(async (acceptedFiles) => {\n setUploading(true);\n setError(null);\n try {\n for (const file of acceptedFiles) {\n const uFiles = await uploadFiles([file], \"document\");\n const token = getToken();\n const payload = {\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n \"title\": file?.name.split(\".\")[0],\n \"path\": \"/\",\n \"is_private\": true,\n \"is_directory\": false,\n \"file_size\": file.size,\n \"is_child\": false,\n \"file_extension\": file?.name.split(\".\")[1],\n \"type\": \"image\",\n \"mime_type\": file.type,\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\n }\n // Replace with your actual API endpoint\n await postV1Drive(payload);\n\n setUploadedImages((prev) => [\n ...prev,\n {\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\n name: file.name,\n },\n ]);\n }\n } catch (err) {\n setError('Failed to upload image. Please try again.');\n } finally {\n setUploading(false);\n }\n }, []);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\n multiple: true,\n });\n\n const sections = [\n {\n id: 'text',\n icon: <TextIcon size={18} />,\n label: 'Text',\n content: (\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\n </Box>\n ),\n },\n {\n id: 'images',\n icon: <ImageIcon size={18} />,\n label: 'Images',\n content: (\n <Box sx={{ mt: 2 }}>\n <Box sx={{ mt: 2 }}>\n <DropzoneBox {...getRootProps()}>\n <input {...getInputProps()} />\n {isDragActive ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drop the images here...\n </Typography>\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Drag and drop images here, or click to select\n </Typography>\n )}\n {uploading && (\n <Box sx={{ mt: 1 }}>\n <CircularProgress size={20} />\n </Box>\n )}\n </DropzoneBox>\n {error && (\n <Alert severity=\"error\" sx={{ mt: 2 }}>\n {error}\n </Alert>\n )}\n {uploadedImages.length > 0 && (\n <Box sx={{ mt: 2 }}>\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\n Uploaded Images\n </Typography>\n <Grid container spacing={1}>\n {uploadedImages.map((image) => (\n <Grid item xs={6} key={image.id}>\n <SidebarItem\n id={image.id}\n label={image.name}\n imageUrl={image.url}\n />\n </Grid>\n ))}\n </Grid>\n </Box>\n )}\n </Box>\n </Box>\n ),\n },\n {\n id: 'buttons',\n icon: (\n <Box\n sx={{\n width: 16,\n height: 16,\n bgcolor: 'grey.400',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '8px',\n }}\n >\n BTN\n </Box>\n ),\n label: 'Buttons',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem\n id=\"sidebar-buttons\"\n icon={\n <Box\n sx={{\n width: 20,\n height: 20,\n bgcolor: 'success.main',\n borderRadius: 1,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n }}\n >\n BTN\n </Box>\n }\n label=\"Buttons\"\n />\n </Box>\n ),\n },\n {\n id: 'divider',\n icon: <Divider sx={{ width: 18 }} />,\n label: 'Divider',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\n </Box>\n ),\n },\n {\n id: 'table',\n icon: <TableIcon size={18} />,\n label: 'Table',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\n </Box>\n ),\n },\n {\n id: 'signature',\n icon: <SignatureIcon size={18} />,\n label: 'Signature',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\n </Box>\n ),\n },\n {\n id: 'qr-code',\n icon: <QrCodeIcon size={18} />,\n label: 'QR Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\n </Box>\n ),\n },\n {\n id: 'bar-code',\n icon: <BarcodeIcon size={18} />,\n label: 'Bar Code',\n content: (\n <Box sx={{ mt: 2 }}>\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\n </Box>\n ),\n },\n ];\n\n const getDriveFiles = async () => {\n try {\n const token = getToken();\n const response = await getV1Drive({\n ...token,\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\n skip: 0,\n limit: 10,\n filters: `(is_directory.eq=0)`\n });\n // Check if response is successful and has data\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\n const files = (response.data as any).drive || [];\n setUploadedImages(files);\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n useEffect(() => {\n getDriveFiles()\n }, [])\n\n return (\n <Box\n sx={{\n bgcolor: 'background.paper',\n borderRight: 1,\n borderColor: 'grey.200',\n width: 390,\n display: 'flex',\n flexDirection: 'column',\n height: 'calc(100vh - 104px)',\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\n }}\n >\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\n <SearchBar \n handleSearch={(key) => console.log('Search:', key)}\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\n />\n </Box>\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\n {sections.map((section) => (\n <Accordion\n key={section.id}\n expanded={expanded === section.id}\n onChange={handleChange(section.id)}\n sx={{\n border: 'none',\n boxShadow: 'none',\n backgroundColor: 'transparent',\n '&:before': { display: 'none' },\n marginBottom: 1,\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\n sx={{\n borderRadius: '8px',\n padding: '0 12px',\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\n '&:hover': {\n backgroundColor: 'grey.50',\n },\n transition: 'background-color 0.2s ease',\n minHeight: 42,\n '& .MuiAccordionSummary-content': {\n alignItems: 'center',\n margin: '8px 0',\n },\n '&.Mui-expanded': {\n minHeight: 42,\n },\n }}\n >\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {section.icon}\n <Typography\n variant=\"body2\"\n sx={{ fontWeight: 500, color: 'text.primary' }}\n >\n {section.label}\n </Typography>\n </Box>\n </AccordionSummary>\n <AccordionDetails sx={{ padding: '8px 16px' }}>\n {section.content}\n </AccordionDetails>\n </Accordion>\n ))}\n </Box>\n </Box>\n );\n};\n\nexport { EditorSidebar };\nexport default EditorSidebar;"],"names":["setDriveUrl","StyledListItem","styled","ListItem","theme","padding","spacing","cursor","borderRadius","shape","backgroundColor","palette","grey","opacity","DropzoneBox","Box","border","textAlign","SidebarItem","id","icon","label","imageUrl","elementType","replace","attributes","listeners","setNodeRef","isDragging","useDraggable","data","type","jsx","ref","className","sx","borderColor","p","children","src","alt","style","width","height","objectFit","marginRight","jsxs","Fragment","ListItemIcon","minWidth","ListItemText","primary","primaryTypographyProps","variant","EditorSidebar","expanded","setExpanded","useState","uploadedImages","setUploadedImages","uploading","setUploading","error","setError","onDrop","useCallback","async","acceptedFiles","file","uFiles","uploadFiles","token","getToken","payload","String","title","name","split","path","is_private","is_directory","file_size","size","is_child","file_extension","mime_type","url","postV1Drive","prev","Date","now","Math","random","err","getRootProps","getInputProps","isDragActive","useDropzone","accept","multiple","sections","TextIcon","content","display","gridTemplateColumns","gap","Heading","ImageIcon","mt","Typography","color","CircularProgress","Alert","severity","length","mb","Grid","container","map","image","item","xs","bgcolor","alignItems","justifyContent","fontSize","Divider","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","useEffect","response","getV1Drive","skip","limit","filters","files","drive","getDriveFiles","borderRight","flexDirection","boxShadow","fontFamily","borderBottom","SearchBar","handleSearch","key","flexGrow","overflowY","section","Accordion","onChange","panel","event","isExpanded","marginBottom","AccordionSummary","expandIcon","ExpandMoreIcon","transition","minHeight","margin","fontWeight","AccordionDetails"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/EditorSidebar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useState, useCallback, useEffect } from 'react';\r\nimport { useDraggable } from '@dnd-kit/core';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport {\r\n Box,\r\n Divider,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemText,\r\n Grid,\r\n Accordion,\r\n AccordionSummary,\r\n AccordionDetails,\r\n Typography,\r\n CircularProgress,\r\n Alert,\r\n} from '@mui/material';\r\nimport {\r\n Heading,\r\n Text as TextIcon,\r\n Image as ImageIcon,\r\n Table as TableIcon,\r\n Blocks as SignatureIcon,\r\n QrCode as QrCodeIcon,\r\n Barcode as BarcodeIcon,\r\n} from 'lucide-react';\r\nimport { styled } from '@mui/material/styles';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport { getV1Drive, postV1Drive, setBaseUrl as setDriveUrl } from '../../../api-client/api.drive/api';\r\nimport SearchBar from '../../../components/search-bar/search-bar';\r\nimport { getToken, uploadFiles } from '../../../utils/common';\r\n\r\nsetDriveUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/document`);\r\n\r\nconst StyledListItem = styled(ListItem)(({ theme }) => ({\r\n padding: theme.spacing(1.5),\r\n cursor: 'grab',\r\n borderRadius: theme.shape.borderRadius,\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n '&.dragging': {\r\n opacity: 0.5,\r\n },\r\n}));\r\n\r\nconst DropzoneBox = styled(Box)(({ theme }) => ({\r\n border: `2px dashed ${theme.palette.grey[400]}`,\r\n borderRadius: theme.shape.borderRadius,\r\n padding: theme.spacing(2),\r\n textAlign: 'center',\r\n backgroundColor: theme.palette.grey[50],\r\n cursor: 'pointer',\r\n '&:hover': {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n}));\r\n\r\nconst SidebarItem = ({ id, icon, label, imageUrl }: { id: string; icon?: React.ReactElement; label: string; imageUrl?: string }) => {\r\n // Extract the element type from the sidebar item id\r\n const elementType = typeof id === 'string' ? id.replace('sidebar-', '') : id;\r\n \r\n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\r\n id,\r\n data: {\r\n // Pass the correct type based on the id\r\n type: imageUrl ? 'image' : elementType,\r\n imageUrl,\r\n label,\r\n },\r\n });\r\n \r\n return (\r\n <StyledListItem\r\n ref={setNodeRef}\r\n {...listeners}\r\n {...attributes}\r\n className={isDragging ? 'dragging' : ''}\r\n sx={{ border: '1px solid', borderColor: 'grey.200', p: 0.75 }}\r\n >\r\n {imageUrl ? (\r\n <img\r\n src={imageUrl}\r\n alt={label}\r\n style={{ width: '100%', height: 140, objectFit: 'cover', marginRight: 8 }}\r\n />\r\n ) : (\r\n <>\r\n <ListItemIcon sx={{ minWidth: 40 }}>{icon}</ListItemIcon>\r\n <ListItemText primary={label} primaryTypographyProps={{ variant: 'body2' }} />\r\n </>\r\n )}\r\n </StyledListItem>\r\n );\r\n};\r\n\r\nconst EditorSidebar = () => {\r\n const [expanded, setExpanded] = useState('text');\r\n const [uploadedImages, setUploadedImages] = useState([]);\r\n const [uploading, setUploading] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const handleChange = (panel) => (event, isExpanded) => {\r\n setExpanded(isExpanded ? panel : false);\r\n };\r\n\r\n const onDrop = useCallback(async (acceptedFiles) => {\r\n setUploading(true);\r\n setError(null);\r\n try {\r\n for (const file of acceptedFiles) {\r\n const uFiles = await uploadFiles([file], \"document\");\r\n const token = getToken();\r\n const payload = {\r\n ...token,\r\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\r\n \"title\": file?.name.split(\".\")[0],\r\n \"path\": \"/\",\r\n \"is_private\": true,\r\n \"is_directory\": false,\r\n \"file_size\": file.size,\r\n \"is_child\": false,\r\n \"file_extension\": file?.name.split(\".\")[1],\r\n \"type\": \"image\",\r\n \"mime_type\": file.type,\r\n \"url\": `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`\r\n }\r\n // Replace with your actual API endpoint\r\n await postV1Drive(payload);\r\n\r\n setUploadedImages((prev) => [\r\n ...prev,\r\n {\r\n id: `uploaded-image-${Date.now()}-${Math.random()}`,\r\n url: `${import.meta.env.VITE_S3_BUCKET_URL}${uFiles[0]}`, // Assume API returns imageUrl\r\n name: file.name,\r\n },\r\n ]);\r\n }\r\n } catch (err) {\r\n setError('Failed to upload image. Please try again.');\r\n } finally {\r\n setUploading(false);\r\n }\r\n }, []);\r\n\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n onDrop,\r\n accept: { 'image/*': ['.jpeg', '.png', '.jpg', '.gif'] },\r\n multiple: true,\r\n });\r\n\r\n const sections = [\r\n {\r\n id: 'text',\r\n icon: <TextIcon size={18} />,\r\n label: 'Text',\r\n content: (\r\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 1 }}>\r\n <SidebarItem id=\"sidebar-heading\" icon={<Heading size={20} />} label=\"Heading 1\" />\r\n <SidebarItem id=\"sidebar-heading-2\" icon={<Heading size={18} />} label=\"Heading 2\" />\r\n <SidebarItem id=\"sidebar-heading-3\" icon={<Heading size={16} />} label=\"Heading 3\" />\r\n <SidebarItem id=\"sidebar-heading-4\" icon={<Heading size={14} />} label=\"Heading 4\" />\r\n <SidebarItem id=\"sidebar-text\" icon={<TextIcon size={20} />} label=\"Body\" />\r\n <SidebarItem id=\"sidebar-text-block\" icon={<TextIcon size={20} />} label=\"Text Block\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'images',\r\n icon: <ImageIcon size={18} />,\r\n label: 'Images',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <Box sx={{ mt: 2 }}>\r\n <DropzoneBox {...getRootProps()}>\r\n <input {...getInputProps()} />\r\n {isDragActive ? (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n Drop the images here...\r\n </Typography>\r\n ) : (\r\n <Typography variant=\"body2\" color=\"text.secondary\">\r\n Drag and drop images here, or click to select\r\n </Typography>\r\n )}\r\n {uploading && (\r\n <Box sx={{ mt: 1 }}>\r\n <CircularProgress size={20} />\r\n </Box>\r\n )}\r\n </DropzoneBox>\r\n {error && (\r\n <Alert severity=\"error\" sx={{ mt: 2 }}>\r\n {error}\r\n </Alert>\r\n )}\r\n {uploadedImages.length > 0 && (\r\n <Box sx={{ mt: 2 }}>\r\n <Typography variant=\"body2\" sx={{ mb: 1, color: 'grey.500' }}>\r\n Uploaded Images\r\n </Typography>\r\n <Grid container spacing={1}>\r\n {uploadedImages.map((image) => (\r\n <Grid item xs={6} key={image.id}>\r\n <SidebarItem\r\n id={image.id}\r\n label={image.name}\r\n imageUrl={image.url}\r\n />\r\n </Grid>\r\n ))}\r\n </Grid>\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'buttons',\r\n icon: (\r\n <Box\r\n sx={{\r\n width: 16,\r\n height: 16,\r\n bgcolor: 'grey.400',\r\n borderRadius: 1,\r\n color: 'white',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '8px',\r\n }}\r\n >\r\n BTN\r\n </Box>\r\n ),\r\n label: 'Buttons',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem\r\n id=\"sidebar-buttons\"\r\n icon={\r\n <Box\r\n sx={{\r\n width: 20,\r\n height: 20,\r\n bgcolor: 'success.main',\r\n borderRadius: 1,\r\n color: 'white',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '10px',\r\n }}\r\n >\r\n BTN\r\n </Box>\r\n }\r\n label=\"Buttons\"\r\n />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'divider',\r\n icon: <Divider sx={{ width: 18 }} />,\r\n label: 'Divider',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-divider\" icon={<Divider sx={{ width: 20 }} />} label=\"Divider\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'table',\r\n icon: <TableIcon size={18} />,\r\n label: 'Table',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-table\" icon={<TableIcon size={20} />} label=\"Table\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'signature',\r\n icon: <SignatureIcon size={18} />,\r\n label: 'Signature',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-signature\" icon={<SignatureIcon size={20} />} label=\"Signature\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'qr-code',\r\n icon: <QrCodeIcon size={18} />,\r\n label: 'QR Code',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-qr-code\" icon={<QrCodeIcon size={20} />} label=\"QR Code\" />\r\n </Box>\r\n ),\r\n },\r\n {\r\n id: 'bar-code',\r\n icon: <BarcodeIcon size={18} />,\r\n label: 'Bar Code',\r\n content: (\r\n <Box sx={{ mt: 2 }}>\r\n <SidebarItem id=\"sidebar-bar-code\" icon={<BarcodeIcon size={20} />} label=\"Bar Code\" />\r\n </Box>\r\n ),\r\n },\r\n ];\r\n\r\n const getDriveFiles = async () => {\r\n try {\r\n const token = getToken();\r\n const response = await getV1Drive({\r\n ...token,\r\n \"x-timezone\": String(token[\"x-timezone\"] || \"\"),\r\n skip: 0,\r\n limit: 10,\r\n filters: `(is_directory.eq=0)`\r\n });\r\n // Check if response is successful and has data\r\n if ('data' in response && response.data && typeof response.data === 'object' && 'drive' in response.data) {\r\n const files = (response.data as any).drive || [];\r\n setUploadedImages(files);\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getDriveFiles()\r\n }, [])\r\n\r\n return (\r\n <Box\r\n sx={{\r\n bgcolor: 'background.paper',\r\n borderRight: 1,\r\n borderColor: 'grey.200',\r\n width: 390,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: 'calc(100vh - 104px)',\r\n boxShadow: '0 2px 8px rgba(0,0,0,0.05)',\r\n fontFamily: 'Inter, system-ui, Avenir, Helvetica, Arial, sans-serif',\r\n }}\r\n >\r\n <Box sx={{ p: 2, borderBottom: 1, borderColor: 'grey.200' }}>\r\n <SearchBar \r\n handleSearch={(key) => console.log('Search:', key)}\r\n sx={{ backgroundColor: \"#fff !important\", border: \"1px solid grey\" }}\r\n />\r\n </Box>\r\n <Box sx={{ flexGrow: 1, overflowY: 'auto', p: 1 }}>\r\n {sections.map((section) => (\r\n <Accordion\r\n key={section.id}\r\n expanded={expanded === section.id}\r\n onChange={handleChange(section.id)}\r\n sx={{\r\n border: 'none',\r\n boxShadow: 'none',\r\n backgroundColor: 'transparent',\r\n '&:before': { display: 'none' },\r\n marginBottom: 1,\r\n }}\r\n >\r\n <AccordionSummary\r\n expandIcon={<ExpandMoreIcon sx={{ color: 'grey.600' }} />}\r\n sx={{\r\n borderRadius: '8px',\r\n padding: '0 12px',\r\n backgroundColor: expanded === section.id ? 'grey.200' : 'grey.50',\r\n '&:hover': {\r\n backgroundColor: 'grey.50',\r\n },\r\n transition: 'background-color 0.2s ease',\r\n minHeight: 42,\r\n '& .MuiAccordionSummary-content': {\r\n alignItems: 'center',\r\n margin: '8px 0',\r\n },\r\n '&.Mui-expanded': {\r\n minHeight: 42,\r\n },\r\n }}\r\n >\r\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\r\n {section.icon}\r\n <Typography\r\n variant=\"body2\"\r\n sx={{ fontWeight: 500, color: 'text.primary' }}\r\n >\r\n {section.label}\r\n </Typography>\r\n </Box>\r\n </AccordionSummary>\r\n <AccordionDetails sx={{ padding: '8px 16px' }}>\r\n {section.content}\r\n </AccordionDetails>\r\n </Accordion>\r\n ))}\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\nexport { EditorSidebar };\r\nexport default EditorSidebar;"],"names":["setDriveUrl","StyledListItem","styled","ListItem","theme","padding","spacing","cursor","borderRadius","shape","backgroundColor","palette","grey","opacity","DropzoneBox","Box","border","textAlign","SidebarItem","id","icon","label","imageUrl","elementType","replace","attributes","listeners","setNodeRef","isDragging","useDraggable","data","type","jsx","ref","className","sx","borderColor","p","children","src","alt","style","width","height","objectFit","marginRight","jsxs","Fragment","ListItemIcon","minWidth","ListItemText","primary","primaryTypographyProps","variant","EditorSidebar","expanded","setExpanded","useState","uploadedImages","setUploadedImages","uploading","setUploading","error","setError","onDrop","useCallback","async","acceptedFiles","file","uFiles","uploadFiles","token","getToken","payload","String","title","name","split","path","is_private","is_directory","file_size","size","is_child","file_extension","mime_type","url","postV1Drive","prev","Date","now","Math","random","err","getRootProps","getInputProps","isDragActive","useDropzone","accept","multiple","sections","TextIcon","content","display","gridTemplateColumns","gap","Heading","ImageIcon","mt","Typography","color","CircularProgress","Alert","severity","length","mb","Grid","container","map","image","item","xs","bgcolor","alignItems","justifyContent","fontSize","Divider","TableIcon","SignatureIcon","QrCodeIcon","BarcodeIcon","useEffect","response","getV1Drive","skip","limit","filters","files","drive","getDriveFiles","borderRight","flexDirection","boxShadow","fontFamily","borderBottom","SearchBar","handleSearch","key","flexGrow","overflowY","section","Accordion","onChange","panel","event","isExpanded","marginBottom","AccordionSummary","expandIcon","ExpandMoreIcon","transition","minHeight","margin","fontWeight","AccordionDetails"],"mappings":"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"}
|