@bjsdistribution/dms-client-return 0.1.70-prod → 0.1.71-prod
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/dist/OrderViewQueryHandler.js +12 -0
- package/dist/OrderViewQueryHandler.js.map +1 -0
- package/dist/assets/icons/ActionIcon.js +32 -0
- package/dist/assets/icons/ActionIcon.js.map +1 -0
- package/dist/assets/icons/ArrowDownIcon.js +28 -0
- package/dist/assets/icons/ArrowDownIcon.js.map +1 -0
- package/dist/assets/icons/AssigneIcon.js +33 -0
- package/dist/assets/icons/AssigneIcon.js.map +1 -0
- package/dist/assets/icons/ChevronUp.js +28 -0
- package/dist/assets/icons/ChevronUp.js.map +1 -0
- package/dist/assets/icons/ClientIcon.js +22 -0
- package/dist/assets/icons/ClientIcon.js.map +1 -0
- package/dist/assets/icons/CollectionLabelIcon.js +25 -0
- package/dist/assets/icons/CollectionLabelIcon.js.map +1 -0
- package/dist/assets/icons/ConfirmedIcon.js +41 -0
- package/dist/assets/icons/ConfirmedIcon.js.map +1 -0
- package/dist/assets/icons/CopyIcon.js +26 -0
- package/dist/assets/icons/CopyIcon.js.map +1 -0
- package/dist/assets/icons/CustomerLabelIcon.js +25 -0
- package/dist/assets/icons/CustomerLabelIcon.js.map +1 -0
- package/dist/assets/icons/DateIcon.js +37 -0
- package/dist/assets/icons/DateIcon.js.map +1 -0
- package/dist/assets/icons/DeliverProductIcon.js +48 -0
- package/dist/assets/icons/DeliverProductIcon.js.map +1 -0
- package/dist/assets/icons/DeliveredIcon.js +41 -0
- package/dist/assets/icons/DeliveredIcon.js.map +1 -0
- package/dist/assets/icons/DeliveryNotes.js +25 -0
- package/dist/assets/icons/DeliveryNotes.js.map +1 -0
- package/dist/assets/icons/Divider.js +27 -0
- package/dist/assets/icons/Divider.js.map +1 -0
- package/dist/assets/icons/DownIcon.js +27 -0
- package/dist/assets/icons/DownIcon.js.map +1 -0
- package/dist/assets/icons/DownloadIcon.js +45 -0
- package/dist/assets/icons/DownloadIcon.js.map +1 -0
- package/dist/assets/icons/FilterIcon.js +35 -0
- package/dist/assets/icons/FilterIcon.js.map +1 -0
- package/dist/assets/icons/FlexCallIcon.js +51 -0
- package/dist/assets/icons/FlexCallIcon.js.map +1 -0
- package/dist/assets/icons/LoadSheetIcon.js +22 -0
- package/dist/assets/icons/LoadSheetIcon.js.map +1 -0
- package/dist/assets/icons/NextIcon.js +6 -0
- package/dist/assets/icons/NextIcon.js.map +1 -0
- package/dist/assets/icons/NotifyFlag.js +25 -0
- package/dist/assets/icons/NotifyFlag.js.map +1 -0
- package/dist/assets/icons/PrevIcon.js +6 -0
- package/dist/assets/icons/PrevIcon.js.map +1 -0
- package/dist/assets/icons/PrinterIcon.js +22 -0
- package/dist/assets/icons/PrinterIcon.js.map +1 -0
- package/dist/assets/icons/RadioButtonCheckIcon.js +38 -0
- package/dist/assets/icons/RadioButtonCheckIcon.js.map +1 -0
- package/dist/assets/icons/ReturnProductIcon.js +25 -0
- package/dist/assets/icons/ReturnProductIcon.js.map +1 -0
- package/dist/assets/icons/RoutedIcon.js +41 -0
- package/dist/assets/icons/RoutedIcon.js.map +1 -0
- package/dist/assets/icons/RunsheetIcon.js +11 -0
- package/dist/assets/icons/RunsheetIcon.js.map +1 -0
- package/dist/assets/icons/SearchIcon.js +35 -0
- package/dist/assets/icons/SearchIcon.js.map +1 -0
- package/dist/assets/icons/SpokePhoneIcon.js +51 -0
- package/dist/assets/icons/SpokePhoneIcon.js.map +1 -0
- package/dist/assets/icons/StatusIcon.js +37 -0
- package/dist/assets/icons/StatusIcon.js.map +1 -0
- package/dist/assets/icons/SuccessIcon.js +64 -0
- package/dist/assets/icons/SuccessIcon.js.map +1 -0
- package/dist/assets/icons/UploadIcon.js +43 -0
- package/dist/assets/icons/UploadIcon.js.map +1 -0
- package/dist/assets/icons/What3WordsIcon.js +58 -0
- package/dist/assets/icons/What3WordsIcon.js.map +1 -0
- package/dist/common/CaretDownFilledIcon.js +28 -0
- package/dist/common/CaretDownFilledIcon.js.map +1 -0
- package/dist/common/SortIcon.js +23 -0
- package/dist/common/SortIcon.js.map +1 -0
- package/dist/common/copy/CopyText.js +15 -0
- package/dist/common/copy/CopyText.js.map +1 -0
- package/dist/common/custom-input/CustomInput.js +22 -0
- package/dist/common/custom-input/CustomInput.js.map +1 -0
- package/dist/common/expand-collapse/index.js +85 -0
- package/dist/common/expand-collapse/index.js.map +1 -0
- package/dist/common/hooks/useCopyToClipboard.js +16 -0
- package/dist/common/hooks/useCopyToClipboard.js.map +1 -0
- package/dist/common/modals/order-action-modal/BackgroundModal.js +27 -0
- package/dist/common/modals/order-action-modal/BackgroundModal.js.map +1 -0
- package/dist/common/modals/order-action-modal/OrderActionModal.js +51 -0
- package/dist/common/modals/order-action-modal/OrderActionModal.js.map +1 -0
- package/dist/common/modals/order-action-modal/footer/OrderActionFooter.js +35 -0
- package/dist/common/modals/order-action-modal/footer/OrderActionFooter.js.map +1 -0
- package/dist/common/modals/order-action-modal/header/AdditionalInformation.js +37 -0
- package/dist/common/modals/order-action-modal/header/AdditionalInformation.js.map +1 -0
- package/dist/common/modals/order-action-modal/header/OrderActionHeader.js +58 -0
- package/dist/common/modals/order-action-modal/header/OrderActionHeader.js.map +1 -0
- package/dist/common/radio-group/RadioButton.js +55 -0
- package/dist/common/radio-group/RadioButton.js.map +1 -0
- package/dist/common/radio-group/RadioButtonGroup.js +79 -0
- package/dist/common/radio-group/RadioButtonGroup.js.map +1 -0
- package/dist/common/radio-group/types.js +7 -0
- package/dist/common/radio-group/types.js.map +1 -0
- package/dist/common/scrollbar/index.js +30 -0
- package/dist/common/scrollbar/index.js.map +1 -0
- package/dist/common/services-slider/ServiceSlider.js +41 -0
- package/dist/common/services-slider/ServiceSlider.js.map +1 -0
- package/dist/common/services-slider/helper.js +21 -0
- package/dist/common/services-slider/helper.js.map +1 -0
- package/dist/common/utils.js +7 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/components/client-portal/DateFilterStore.js +132 -0
- package/dist/components/client-portal/DateFilterStore.js.map +1 -0
- package/dist/components/client-portal/OutstandingTable.js +207 -0
- package/dist/components/client-portal/OutstandingTable.js.map +1 -0
- package/dist/components/client-portal/ReturnAfterSearchBar.js +121 -0
- package/dist/components/client-portal/ReturnAfterSearchBar.js.map +1 -0
- package/dist/components/client-portal/ReturnOverview.js +204 -0
- package/dist/components/client-portal/ReturnOverview.js.map +1 -0
- package/dist/components/client-portal/ReturnRTFilters.js +206 -0
- package/dist/components/client-portal/ReturnRTFilters.js.map +1 -0
- package/dist/components/client-portal/ReturnSearchBar.js +113 -0
- package/dist/components/client-portal/ReturnSearchBar.js.map +1 -0
- package/dist/components/client-portal/return-confirm/ConfirmedMain.js +142 -0
- package/dist/components/client-portal/return-confirm/ConfirmedMain.js.map +1 -0
- package/dist/components/client-portal/return-confirm/ReturnConfirmedTable.js +217 -0
- package/dist/components/client-portal/return-confirm/ReturnConfirmedTable.js.map +1 -0
- package/dist/components/fakeData.js +14 -0
- package/dist/components/fakeData.js.map +1 -0
- package/dist/components/order-daily-overview/common/fakedata.js +44 -0
- package/dist/components/order-daily-overview/common/fakedata.js.map +1 -0
- package/dist/components/order-daily-overview/filters/BulkFilter.js +17 -0
- package/dist/components/order-daily-overview/filters/BulkFilter.js.map +1 -0
- package/dist/components/order-daily-overview/filters/BulkFilterStyle.js +54 -0
- package/dist/components/order-daily-overview/filters/BulkFilterStyle.js.map +1 -0
- package/dist/components/order-daily-overview/filters/FilterStyle.js +132 -0
- package/dist/components/order-daily-overview/filters/FilterStyle.js.map +1 -0
- package/dist/components/order-daily-overview/filters/Filters.js +11 -0
- package/dist/components/order-daily-overview/filters/Filters.js.map +1 -0
- package/dist/components/order-daily-overview/header/route-header/ClientRouterHeader.js +144 -0
- package/dist/components/order-daily-overview/header/route-header/ClientRouterHeader.js.map +1 -0
- package/dist/components/order-daily-overview/header/route-header/RouterHeader.js +73 -0
- package/dist/components/order-daily-overview/header/route-header/RouterHeader.js.map +1 -0
- package/dist/components/order-daily-overview/header/route-header/RouterHeaderStyle.js +52 -0
- package/dist/components/order-daily-overview/header/route-header/RouterHeaderStyle.js.map +1 -0
- package/dist/components/order-daily-overview/header/route-header/breadCrumb/BreadCrumb.js +23 -0
- package/dist/components/order-daily-overview/header/route-header/breadCrumb/BreadCrumb.js.map +1 -0
- package/dist/components/order-daily-overview/header/route-header/search/SearchType.js +116 -0
- package/dist/components/order-daily-overview/header/route-header/search/SearchType.js.map +1 -0
- package/dist/components/order-daily-overview/header/route-header/title/HeaderTitle.js +17 -0
- package/dist/components/order-daily-overview/header/route-header/title/HeaderTitle.js.map +1 -0
- package/dist/components/order-daily-overview/header-filters/HeaderFilter.js +15 -0
- package/dist/components/order-daily-overview/header-filters/HeaderFilter.js.map +1 -0
- package/dist/components/order-daily-overview/header-filters/SelectionFilter.js +250 -0
- package/dist/components/order-daily-overview/header-filters/SelectionFilter.js.map +1 -0
- package/dist/components/order-daily-overview/header-filters/Styledfilters.js +209 -0
- package/dist/components/order-daily-overview/header-filters/Styledfilters.js.map +1 -0
- package/dist/components/order-daily-overview/header-filters/filterStore.js +126 -0
- package/dist/components/order-daily-overview/header-filters/filterStore.js.map +1 -0
- package/dist/components/order-daily-overview/header-filters/overViewFilter.js +74 -0
- package/dist/components/order-daily-overview/header-filters/overViewFilter.js.map +1 -0
- package/dist/components/order-daily-overview/index.js +207 -0
- package/dist/components/order-daily-overview/index.js.map +1 -0
- package/dist/components/order-daily-overview/return-after-table/ReturnAfterTable.js +184 -0
- package/dist/components/order-daily-overview/return-after-table/ReturnAfterTable.js.map +1 -0
- package/dist/components/order-daily-overview/return-after-table/table/OrderTable.js +231 -0
- package/dist/components/order-daily-overview/return-after-table/table/OrderTable.js.map +1 -0
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.js +210 -0
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.js.map +1 -0
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.js +225 -0
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.js.map +1 -0
- package/dist/components/order-daily-overview/return-after-table/table-filters/TableFilters.js +29 -0
- package/dist/components/order-daily-overview/return-after-table/table-filters/TableFilters.js.map +1 -0
- package/dist/components/order-daily-overview/return-order-table/ReturnTable.js +159 -0
- package/dist/components/order-daily-overview/return-order-table/ReturnTable.js.map +1 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnFilter.js +47 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnFilter.js.map +1 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.js +320 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.js.map +1 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/RightFilters.js +61 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/RightFilters.js.map +1 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/returnstyles.js +515 -0
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/returnstyles.js.map +1 -0
- package/dist/components/order-daily-overview/shared/elements/PrintDropDown.js +65 -0
- package/dist/components/order-daily-overview/shared/elements/PrintDropDown.js.map +1 -0
- package/dist/components/order-daily-overview/shared/utlis.js +26 -0
- package/dist/components/order-daily-overview/shared/utlis.js.map +1 -0
- package/dist/components/order-daily-overview/store/store.js +46 -0
- package/dist/components/order-daily-overview/store/store.js.map +1 -0
- package/dist/components/order-daily-overview/table/ReturnTable.js +287 -0
- package/dist/components/order-daily-overview/table/ReturnTable.js.map +1 -0
- package/dist/components/order-daily-overview/table/table-data/styles.js +610 -0
- package/dist/components/order-daily-overview/table/table-data/styles.js.map +1 -0
- package/dist/components/order-daily-overview/table-view/Pagination.js +89 -0
- package/dist/components/order-daily-overview/table-view/Pagination.js.map +1 -0
- package/dist/components/order-daily-overview/table-view/PaginationStyle.js +94 -0
- package/dist/components/order-daily-overview/table-view/PaginationStyle.js.map +1 -0
- package/dist/components/order-daily-overview/table-view/ReturnPagination.js +89 -0
- package/dist/components/order-daily-overview/table-view/ReturnPagination.js.map +1 -0
- package/dist/components/order-view/DynamicTable.js +169 -0
- package/dist/components/order-view/DynamicTable.js.map +1 -0
- package/dist/components/order-view/details-filters/DetailsFilters.js +30 -0
- package/dist/components/order-view/details-filters/DetailsFilters.js.map +1 -0
- package/dist/components/order-view/details-filters/left-side-filters/ActionsMenu.js +18 -0
- package/dist/components/order-view/details-filters/left-side-filters/ActionsMenu.js.map +1 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.js +57 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.js.map +1 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/MenuDropDown.js +38 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/MenuDropDown.js.map +1 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.js +45 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.js.map +1 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn.js +67 -0
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn.js.map +1 -0
- package/dist/components/order-view/details-filters/right-side-filters/Details.js +49 -0
- package/dist/components/order-view/details-filters/right-side-filters/Details.js.map +1 -0
- package/dist/components/order-view/fakedata.js +69 -0
- package/dist/components/order-view/fakedata.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/Actions.js +106 -0
- package/dist/components/order-view/flags-action-modal/Actions.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/DetailSection.js +40 -0
- package/dist/components/order-view/flags-action-modal/DetailSection.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/Dropdowns.js +85 -0
- package/dist/components/order-view/flags-action-modal/Dropdowns.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/Header.js +103 -0
- package/dist/components/order-view/flags-action-modal/Header.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/StatusIndicator.js +43 -0
- package/dist/components/order-view/flags-action-modal/StatusIndicator.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/TextSection.js +33 -0
- package/dist/components/order-view/flags-action-modal/TextSection.js.map +1 -0
- package/dist/components/order-view/flags-action-modal/index.js +87 -0
- package/dist/components/order-view/flags-action-modal/index.js.map +1 -0
- package/dist/components/order-view/general-information/Status.js +107 -0
- package/dist/components/order-view/general-information/Status.js.map +1 -0
- package/dist/components/order-view/general-information/dropdowns/Print.js +80 -0
- package/dist/components/order-view/general-information/dropdowns/Print.js.map +1 -0
- package/dist/components/order-view/general-information/index.js +11 -0
- package/dist/components/order-view/general-information/index.js.map +1 -0
- package/dist/components/order-view/generic-table/AuditLogs.js +83 -0
- package/dist/components/order-view/generic-table/AuditLogs.js.map +1 -0
- package/dist/components/order-view/helper.js +30 -0
- package/dist/components/order-view/helper.js.map +1 -0
- package/dist/components/order-view/index.js +308 -0
- package/dist/components/order-view/index.js.map +1 -0
- package/dist/components/order-view/modalsPopup/CreateReturnModal.js +79 -0
- package/dist/components/order-view/modalsPopup/CreateReturnModal.js.map +1 -0
- package/dist/components/order-view/modalsPopup/DefectsModal.js +34 -0
- package/dist/components/order-view/modalsPopup/DefectsModal.js.map +1 -0
- package/dist/components/order-view/modalsPopup/ModalManager.js +160 -0
- package/dist/components/order-view/modalsPopup/ModalManager.js.map +1 -0
- package/dist/components/order-view/northern-southern-info/CustomInput.js +58 -0
- package/dist/components/order-view/northern-southern-info/CustomInput.js.map +1 -0
- package/dist/components/order-view/northern-southern-info/index.js +82 -0
- package/dist/components/order-view/northern-southern-info/index.js.map +1 -0
- package/dist/components/order-view/notes/AddNote.js +125 -0
- package/dist/components/order-view/notes/AddNote.js.map +1 -0
- package/dist/components/order-view/notes/NoteType.js +45 -0
- package/dist/components/order-view/notes/NoteType.js.map +1 -0
- package/dist/components/order-view/notes/index.js +108 -0
- package/dist/components/order-view/notes/index.js.map +1 -0
- package/dist/components/order-view/notes/logs/fakeData.js +13 -0
- package/dist/components/order-view/notes/logs/fakeData.js.map +1 -0
- package/dist/components/order-view/notes/logs/index.js +17 -0
- package/dist/components/order-view/notes/logs/index.js.map +1 -0
- package/dist/components/order-view/notes/order-dropdown/NewReturnDropdown.js +95 -0
- package/dist/components/order-view/notes/order-dropdown/NewReturnDropdown.js.map +1 -0
- package/dist/components/order-view/notification/FlagTemplate.js +62 -0
- package/dist/components/order-view/notification/FlagTemplate.js.map +1 -0
- package/dist/components/order-view/notification/OrderTemplate.js +441 -0
- package/dist/components/order-view/notification/OrderTemplate.js.map +1 -0
- package/dist/components/order-view/notification/ReminderTemplate.js +75 -0
- package/dist/components/order-view/notification/ReminderTemplate.js.map +1 -0
- package/dist/components/order-view/notification/Tabs.js +91 -0
- package/dist/components/order-view/notification/Tabs.js.map +1 -0
- package/dist/components/order-view/notification/index.js +322 -0
- package/dist/components/order-view/notification/index.js.map +1 -0
- package/dist/components/order-view/order-actions/Dropdown.js +44 -0
- package/dist/components/order-view/order-actions/Dropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/add-resources/CategoryDropdown.js +33 -0
- package/dist/components/order-view/order-actions/actions/add-resources/CategoryDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/add-resources/DeliveryDate.js +62 -0
- package/dist/components/order-view/order-actions/actions/add-resources/DeliveryDate.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/add-resources/DocFileUpload.js +158 -0
- package/dist/components/order-view/order-actions/actions/add-resources/DocFileUpload.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/add-resources/DocumentTypeDropdown.js +33 -0
- package/dist/components/order-view/order-actions/actions/add-resources/DocumentTypeDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/add-resources/Visibility.js +32 -0
- package/dist/components/order-view/order-actions/actions/add-resources/Visibility.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/add-resources/index.js +166 -0
- package/dist/components/order-view/order-actions/actions/add-resources/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.js +259 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnAction.js +32 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnAction.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.js +32 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/index.js +187 -0
- package/dist/components/order-view/order-actions/actions/cancel-order/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/change-customer-account/ChangeCustomerAccModal.js +94 -0
- package/dist/components/order-view/order-actions/actions/change-customer-account/ChangeCustomerAccModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/charge-log/index.js +373 -0
- package/dist/components/order-view/order-actions/actions/charge-log/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.js +65 -0
- package/dist/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ActionDropdown.js +48 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ActionDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactMobile.js +63 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactMobile.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactPhone.js +63 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactPhone.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactTypeDropdown.js +36 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactTypeDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWith.js +24 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWith.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWork.js +63 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWork.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/DeliveryDate.js +66 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/DeliveryDate.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/EmailAddress.js +55 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/EmailAddress.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/TimedServiceDropdown.js +43 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/TimedServiceDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/index.js +69 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/index.js +219 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/send-comms/SendComms.js +65 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/send-comms/SendComms.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/ConfirmationNotes.js +24 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/ConfirmationNotes.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/DeliveryInstructions.js +24 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/DeliveryInstructions.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/index.js +47 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.js +102 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.js +55 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ReminderStyles.js +286 -0
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ReminderStyles.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.js +302 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.js +144 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/SharedComponents.js +106 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/SharedComponents.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/TaskModal.js +74 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/TaskModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/index.js +78 -0
- package/dist/components/order-view/order-actions/actions/create-task-reminder/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.js +66 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.js +404 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/Selector.js +49 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/Selector.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.js +73 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.js +76 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.js +52 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.js +51 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.js +52 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.js +79 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.js +71 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.js +69 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.js +86 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/index.js +15 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.js +92 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.js +23 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/index.js +123 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.js +119 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.js +41 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.js +65 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.js +34 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.js +37 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.js +139 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/index.js +31 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.js +172 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/styles.js +49 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/styles.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.js +97 -0
- package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/modalstyle.js +384 -0
- package/dist/components/order-view/order-actions/actions/modalstyle.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/release-order/ReleaseOrder.js +57 -0
- package/dist/components/order-view/order-actions/actions/release-order/ReleaseOrder.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.js +58 -0
- package/dist/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/send-email/SendEmailModal.js +107 -0
- package/dist/components/order-view/order-actions/actions/send-email/SendEmailModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/send-sms/SendSmsModal.js +131 -0
- package/dist/components/order-view/order-actions/actions/send-sms/SendSmsModal.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.js +71 -0
- package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/split-order/index.js +69 -0
- package/dist/components/order-view/order-actions/actions/split-order/index.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrder.js +161 -0
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrder.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.js +261 -0
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/unhold-order/UnholdOrder.js +48 -0
- package/dist/components/order-view/order-actions/actions/unhold-order/UnholdOrder.js.map +1 -0
- package/dist/components/order-view/order-actions/actions/what3words/What3WordsModal.tsx.js +210 -0
- package/dist/components/order-view/order-actions/actions/what3words/What3WordsModal.tsx.js.map +1 -0
- package/dist/components/order-view/order-actions/index.js +231 -0
- package/dist/components/order-view/order-actions/index.js.map +1 -0
- package/dist/components/order-view/order-actions/store.js +179 -0
- package/dist/components/order-view/order-actions/store.js.map +1 -0
- package/dist/components/order-view/order-actions/utils.js +27 -0
- package/dist/components/order-view/order-actions/utils.js.map +1 -0
- package/dist/components/order-view/order-details/common/Header.js +23 -0
- package/dist/components/order-view/order-details/common/Header.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/RecipientName.js +58 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/RecipientName.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/CallCustomer.js +18 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/CallCustomer.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactEmail.js +57 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactEmail.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.js +90 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.js +94 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.js +90 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/index.js +30 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/index.js +31 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Address.js +49 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Address.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Latitude.js +54 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Latitude.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Longitude.js +54 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Longitude.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Postcode.js +119 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Postcode.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/What3words.js +90 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/What3words.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/index.js +37 -0
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/footer/AllowTracking.js +37 -0
- package/dist/components/order-view/order-details/expanded-content/footer/AllowTracking.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/footer/index.js +126 -0
- package/dist/components/order-view/order-details/expanded-content/footer/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/index.js +80 -0
- package/dist/components/order-view/order-details/expanded-content/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/DeliveryInstructions.js +36 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/DeliveryInstructions.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/OrderStatusNote.js +36 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/OrderStatusNote.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/OtherInstructions.js +36 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/OtherInstructions.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/index.js +33 -0
- package/dist/components/order-view/order-details/expanded-content/instruction-section/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/Carrier.js +54 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/Carrier.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/ConsignmentNumber.js +35 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/ConsignmentNumber.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/DeliveryDate.js +74 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/DeliveryDate.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/Depot.js +49 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/Depot.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/Droptime.js +46 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/Droptime.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/OrderNumber.js +44 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/OrderNumber.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/RecipientReference.js +44 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/RecipientReference.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/ScheduleAfter.js +44 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/ScheduleAfter.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/VehicleType.js +40 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/VehicleType.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/index.js +54 -0
- package/dist/components/order-view/order-details/expanded-content/orders-section/index.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/AssemblyType.js +49 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/AssemblyType.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/DeliveryPoint.js +52 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/DeliveryPoint.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.js +55 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceLevel.js +58 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceLevel.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.js +48 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/TimedService.js +66 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/TimedService.js.map +1 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/index.js +64 -0
- package/dist/components/order-view/order-details/expanded-content/services-section/index.js.map +1 -0
- package/dist/components/order-view/order-details/helper.js +14 -0
- package/dist/components/order-view/order-details/helper.js.map +1 -0
- package/dist/components/order-view/order-details/index.js +30 -0
- package/dist/components/order-view/order-details/index.js.map +1 -0
- package/dist/components/order-view/order-resources/collapsed-content/index.js +16 -0
- package/dist/components/order-view/order-resources/collapsed-content/index.js.map +1 -0
- package/dist/components/order-view/order-resources/columns/Category.js +11 -0
- package/dist/components/order-view/order-resources/columns/Category.js.map +1 -0
- package/dist/components/order-view/order-resources/columns/Date.js +12 -0
- package/dist/components/order-view/order-resources/columns/Date.js.map +1 -0
- package/dist/components/order-view/order-resources/columns/Reference.js +11 -0
- package/dist/components/order-view/order-resources/columns/Reference.js.map +1 -0
- package/dist/components/order-view/order-resources/columns/Type.js +11 -0
- package/dist/components/order-view/order-resources/columns/Type.js.map +1 -0
- package/dist/components/order-view/order-resources/columns/actions/index.js +78 -0
- package/dist/components/order-view/order-resources/columns/actions/index.js.map +1 -0
- package/dist/components/order-view/order-resources/expanded-content/index.js +18 -0
- package/dist/components/order-view/order-resources/expanded-content/index.js.map +1 -0
- package/dist/components/order-view/order-resources/helper.js +41 -0
- package/dist/components/order-view/order-resources/helper.js.map +1 -0
- package/dist/components/order-view/products-info/collapsed-content/index.js +56 -0
- package/dist/components/order-view/products-info/collapsed-content/index.js.map +1 -0
- package/dist/components/order-view/products-info/expanded-content/index.js +90 -0
- package/dist/components/order-view/products-info/expanded-content/index.js.map +1 -0
- package/dist/components/order-view/products-info/index.js +95 -0
- package/dist/components/order-view/products-info/index.js.map +1 -0
- package/dist/components/order-view/return-client-products/ProductTable.js +19 -0
- package/dist/components/order-view/return-client-products/ProductTable.js.map +1 -0
- package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js +241 -0
- package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.js.map +1 -0
- package/dist/components/order-view/store.js +499 -0
- package/dist/components/order-view/store.js.map +1 -0
- package/dist/components/order-view/system-event-logs/collapsed-content/index.js +16 -0
- package/dist/components/order-view/system-event-logs/collapsed-content/index.js.map +1 -0
- package/dist/components/order-view/system-event-logs/columns/Code.js +11 -0
- package/dist/components/order-view/system-event-logs/columns/Code.js.map +1 -0
- package/dist/components/order-view/system-event-logs/columns/Date.js +12 -0
- package/dist/components/order-view/system-event-logs/columns/Date.js.map +1 -0
- package/dist/components/order-view/system-event-logs/columns/Event.js +11 -0
- package/dist/components/order-view/system-event-logs/columns/Event.js.map +1 -0
- package/dist/components/order-view/system-event-logs/columns/Note.js +17 -0
- package/dist/components/order-view/system-event-logs/columns/Note.js.map +1 -0
- package/dist/components/order-view/system-event-logs/expanded-content/index.js +25 -0
- package/dist/components/order-view/system-event-logs/expanded-content/index.js.map +1 -0
- package/dist/components/order-view/system-event-logs/helper.js +34 -0
- package/dist/components/order-view/system-event-logs/helper.js.map +1 -0
- package/dist/components/order-view/utils.js +164 -0
- package/dist/components/order-view/utils.js.map +1 -0
- package/dist/components/order-view/view-reminder/AssigneeDropdown.js +159 -0
- package/dist/components/order-view/view-reminder/AssigneeDropdown.js.map +1 -0
- package/dist/components/order-view/view-reminder/ViewReminder.js +287 -0
- package/dist/components/order-view/view-reminder/ViewReminder.js.map +1 -0
- package/dist/components/order-view/view-reminder/reminder-styles.js +182 -0
- package/dist/components/order-view/view-reminder/reminder-styles.js.map +1 -0
- package/dist/components/store.js +192 -0
- package/dist/components/store.js.map +1 -0
- package/dist/components/utils.js +9 -0
- package/dist/components/utils.js.map +1 -0
- package/dist/index.js +88 -7
- package/dist/index.js.map +1 -0
- package/dist/types/OrderViewQueryHandler.d.ts +2 -0
- package/dist/types/assets/icons/ActionIcon.d.ts +2 -0
- package/dist/types/assets/icons/ArrowDownIcon.d.ts +6 -0
- package/dist/types/assets/icons/AssigneIcon.d.ts +2 -0
- package/dist/types/assets/icons/BulkFilterIcon.d.ts +2 -0
- package/dist/types/assets/icons/CalendarIcon.d.ts +2 -0
- package/dist/types/assets/icons/ChevronDownIcon.d.ts +2 -0
- package/dist/types/assets/icons/ChevronRight.d.ts +2 -0
- package/dist/types/assets/icons/ChevronUp.d.ts +2 -0
- package/dist/types/assets/icons/ClientIcon.d.ts +2 -0
- package/dist/types/assets/icons/CloseIcon.d.ts +2 -0
- package/dist/types/assets/icons/CollectionLabelIcon.d.ts +2 -0
- package/dist/types/assets/icons/ConfirmedIcon.d.ts +2 -0
- package/dist/types/assets/icons/CopyIcon.d.ts +5 -0
- package/dist/types/assets/icons/CustomerLabelIcon.d.ts +2 -0
- package/dist/types/assets/icons/CustomerServiceImg.d.ts +2 -0
- package/dist/types/assets/icons/DateIcon.d.ts +2 -0
- package/dist/types/assets/icons/DatePickerIcon.d.ts +2 -0
- package/dist/types/assets/icons/DebriefReadyIcon.d.ts +2 -0
- package/dist/types/assets/icons/DefectsIcon.d.ts +2 -0
- package/dist/types/assets/icons/DeliverProductIcon.d.ts +2 -0
- package/dist/types/assets/icons/DeliveredIcon.d.ts +2 -0
- package/dist/types/assets/icons/DeliveryNotes.d.ts +2 -0
- package/dist/types/assets/icons/Divider.d.ts +2 -0
- package/dist/types/assets/icons/DownIcon.d.ts +2 -0
- package/dist/types/assets/icons/DownloadIcon.d.ts +2 -0
- package/dist/types/assets/icons/DustbinIcon.d.ts +2 -0
- package/dist/types/assets/icons/FilterIcon.d.ts +2 -0
- package/dist/types/assets/icons/FlexCallIcon.d.ts +2 -0
- package/dist/types/assets/icons/GrowthImg.d.ts +2 -0
- package/dist/types/assets/icons/InfoTriangleOutlineIcon.d.ts +2 -0
- package/dist/types/assets/icons/InnovativeBulb.d.ts +2 -0
- package/dist/types/assets/icons/Leftarrow.d.ts +2 -0
- package/dist/types/assets/icons/LoadIcon.d.ts +2 -0
- package/dist/types/assets/icons/LoadSheetIcon.d.ts +2 -0
- package/dist/types/assets/icons/LocationIcon.d.ts +2 -0
- package/dist/types/assets/icons/NextIcon.d.ts +2 -0
- package/dist/types/assets/icons/NotifyFlag.d.ts +2 -0
- package/dist/types/assets/icons/PackedImg.d.ts +2 -0
- package/dist/types/assets/icons/PlusIcon.d.ts +2 -0
- package/dist/types/assets/icons/PolygonIcon.d.ts +2 -0
- package/dist/types/assets/icons/PrevIcon.d.ts +2 -0
- package/dist/types/assets/icons/PrinterIcon.d.ts +2 -0
- package/dist/types/assets/icons/ProfileImg.d.ts +2 -0
- package/dist/types/assets/icons/PublicIcon.d.ts +2 -0
- package/dist/types/assets/icons/QcIcon.d.ts +2 -0
- package/dist/types/assets/icons/RadioButtonCheckIcon.d.ts +2 -0
- package/dist/types/assets/icons/RepackLogsIcon.d.ts +2 -0
- package/dist/types/assets/icons/ReturnProductIcon.d.ts +2 -0
- package/dist/types/assets/icons/RicherSoundsLogo.d.ts +2 -0
- package/dist/types/assets/icons/Rightarrow.d.ts +2 -0
- package/dist/types/assets/icons/RouteIcon.d.ts +2 -0
- package/dist/types/assets/icons/RoutedIcon.d.ts +2 -0
- package/dist/types/assets/icons/RunsheetIcon.d.ts +2 -0
- package/dist/types/assets/icons/SearchIcon.d.ts +2 -0
- package/dist/types/assets/icons/SpokePhoneIcon.d.ts +2 -0
- package/dist/types/assets/icons/StatusIcon.d.ts +2 -0
- package/dist/types/assets/icons/SuccessIcon.d.ts +2 -0
- package/dist/types/assets/icons/TrueMatkIcon.d.ts +2 -0
- package/dist/types/assets/icons/UpArrowCircleOutlineIcon.d.ts +2 -0
- package/dist/types/assets/icons/UploadIcon.d.ts +2 -0
- package/dist/types/assets/icons/What3WordsIcon.d.ts +2 -0
- package/dist/types/common/CaretDownFilledIcon.d.ts +2 -0
- package/dist/types/common/CaretUpFilledIcon.d.ts +2 -0
- package/dist/types/common/SortIcon.d.ts +2 -0
- package/dist/types/common/checkbox/index.d.ts +11 -0
- package/dist/types/common/copy/CopyText.d.ts +5 -0
- package/dist/types/common/custom-input/CustomInput.d.ts +5 -0
- package/dist/types/common/custom-switch/index.d.ts +6 -0
- package/dist/types/common/date-picker/CustomDatePicker.d.ts +12 -0
- package/dist/types/common/date-picker/FilterByType.d.ts +4 -0
- package/dist/types/common/date-picker/header/ClearDate.d.ts +5 -0
- package/dist/types/common/date-picker/header/DatePickerHeader.d.ts +6 -0
- package/dist/types/common/date-picker/header/DatePickerHeaderDropdown.d.ts +8 -0
- package/dist/types/common/date-picker/header/Header.d.ts +4 -0
- package/dist/types/common/date-picker/header/MonthOrYearPicker.d.ts +8 -0
- package/dist/types/common/date-picker/header/PromptOrClearDate.d.ts +9 -0
- package/dist/types/common/date-picker/index.d.ts +15 -0
- package/dist/types/common/date-picker/legend/DateLegend.d.ts +8 -0
- package/dist/types/common/date-picker/legend/index.d.ts +4 -0
- package/dist/types/common/date-picker/modal/Modal.d.ts +7 -0
- package/dist/types/common/date-picker/range-date-filter/RangeDates.d.ts +3 -0
- package/dist/types/common/date-picker/range-date-filter/Seperator.d.ts +4 -0
- package/dist/types/common/date-picker/range-date-filter/SingleRangeDateItem.d.ts +10 -0
- package/dist/types/common/date-picker/range-date-filter/index.d.ts +8 -0
- package/dist/types/common/date-picker/single-date-filter/SingleDateFilter.d.ts +9 -0
- package/dist/types/common/expand-collapse/index.d.ts +8 -0
- package/dist/types/common/hooks/useCopyToClipboard.d.ts +2 -0
- package/dist/types/common/infiniteScrolling.d.ts +5 -0
- package/dist/types/common/modals/order-action-modal/BackgroundModal.d.ts +6 -0
- package/dist/types/common/modals/order-action-modal/OrderActionModal.d.ts +17 -0
- package/dist/types/common/modals/order-action-modal/footer/OrderActionFooter.d.ts +11 -0
- package/dist/types/common/modals/order-action-modal/header/AdditionalInformation.d.ts +5 -0
- package/dist/types/common/modals/order-action-modal/header/OrderActionHeader.d.ts +10 -0
- package/dist/types/common/radio-group/RadioButton.d.ts +3 -0
- package/dist/types/common/radio-group/RadioButtonGroup.d.ts +3 -0
- package/dist/types/common/radio-group/types.d.ts +26 -0
- package/dist/types/common/scrollbar/index.d.ts +7 -0
- package/dist/types/common/services-slider/ServiceSlider.d.ts +9 -0
- package/dist/types/common/services-slider/helper.d.ts +3 -0
- package/dist/types/common/utils.d.ts +4 -0
- package/dist/types/components/client-portal/DateFilterStore.d.ts +15 -0
- package/dist/types/components/client-portal/OutstandingTable.d.ts +2 -0
- package/dist/types/components/client-portal/ReturnAfterSearchBar.d.ts +4 -0
- package/dist/types/components/client-portal/ReturnOverview.d.ts +2 -0
- package/dist/types/components/client-portal/ReturnRTFilters.d.ts +11 -0
- package/dist/types/components/client-portal/ReturnSearchBar.d.ts +4 -0
- package/dist/types/components/client-portal/ReturnStatus.d.ts +7 -0
- package/dist/types/components/client-portal/return-confirm/ConfirmedMain.d.ts +2 -0
- package/dist/types/components/client-portal/return-confirm/ReturnConfirmedTable.d.ts +2 -0
- package/dist/types/components/fakeData.d.ts +79 -0
- package/dist/types/components/order-daily-overview/common/fakedata.d.ts +110 -0
- package/dist/types/components/order-daily-overview/common/interface.d.ts +41 -0
- package/dist/types/components/order-daily-overview/common/mediaQuery.d.ts +4 -0
- package/dist/types/components/order-daily-overview/filters/BulkFilter.d.ts +2 -0
- package/dist/types/components/order-daily-overview/filters/BulkFilterStyle.d.ts +2 -0
- package/dist/types/components/order-daily-overview/filters/FilterStyle.d.ts +8 -0
- package/dist/types/components/order-daily-overview/filters/Filters.d.ts +2 -0
- package/dist/types/components/order-daily-overview/header/checkbox-wrapper/CheckBoxWrapper.d.ts +14 -0
- package/dist/types/components/order-daily-overview/header/input/dropdown/index.d.ts +7 -0
- package/dist/types/components/order-daily-overview/header/input/dropdown/styles.d.ts +3 -0
- package/dist/types/components/order-daily-overview/header/loader/Loader.d.ts +6 -0
- package/dist/types/components/order-daily-overview/header/route-header/ClientRouterHeader.d.ts +10 -0
- package/dist/types/components/order-daily-overview/header/route-header/RouterHeader.d.ts +10 -0
- package/dist/types/components/order-daily-overview/header/route-header/RouterHeaderStyle.d.ts +4 -0
- package/dist/types/components/order-daily-overview/header/route-header/breadCrumb/BreadCrumb.d.ts +7 -0
- package/dist/types/components/order-daily-overview/header/route-header/search/SearchType.d.ts +2 -0
- package/dist/types/components/order-daily-overview/header/route-header/title/HeaderTitle.d.ts +5 -0
- package/dist/types/components/order-daily-overview/header/table-filter/TableFilter.d.ts +7 -0
- package/dist/types/components/order-daily-overview/header/table-filter/TableFilterStyle.d.ts +4 -0
- package/dist/types/components/order-daily-overview/header-filters/HeaderFilter.d.ts +2 -0
- package/dist/types/components/order-daily-overview/header-filters/SelectionFilter.d.ts +5 -0
- package/dist/types/components/order-daily-overview/header-filters/Styledfilters.d.ts +24 -0
- package/dist/types/components/order-daily-overview/header-filters/filterStore.d.ts +16 -0
- package/dist/types/components/order-daily-overview/header-filters/overViewFilter.d.ts +17 -0
- package/dist/types/components/order-daily-overview/index.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-after-table/ReturnAfterTable.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-after-table/table/OrderTable.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.d.ts +16 -0
- package/dist/types/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.d.ts +4 -0
- package/dist/types/components/order-daily-overview/return-after-table/table-filters/TableFilters.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-order-table/FilterStore.d.ts +23 -0
- package/dist/types/components/order-daily-overview/return-order-table/ReturnTable.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-order-table/return-orders-filters/OrdersFilters.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-order-table/return-orders-filters/ReturnFilter.d.ts +5 -0
- package/dist/types/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-order-table/return-orders-filters/RightFilters.d.ts +2 -0
- package/dist/types/components/order-daily-overview/return-order-table/return-orders-filters/returnstyles.d.ts +22 -0
- package/dist/types/components/order-daily-overview/shared/elements/PrintDropDown.d.ts +9 -0
- package/dist/types/components/order-daily-overview/shared/interface.d.ts +155 -0
- package/dist/types/components/order-daily-overview/shared/types.d.ts +1 -0
- package/dist/types/components/order-daily-overview/shared/utlis.d.ts +6 -0
- package/dist/types/components/order-daily-overview/store/store.d.ts +25 -0
- package/dist/types/components/order-daily-overview/table/ReturnTable.d.ts +3 -0
- package/dist/types/components/order-daily-overview/table/table-data/helper.d.ts +2 -0
- package/dist/types/components/order-daily-overview/table/table-data/styles.d.ts +43 -0
- package/dist/types/components/order-daily-overview/table-view/Pagination.d.ts +3 -0
- package/dist/types/components/order-daily-overview/table-view/PaginationStyle.d.ts +11 -0
- package/dist/types/components/order-daily-overview/table-view/ReturnPagination.d.ts +3 -0
- package/dist/types/components/order-daily-overview/table-view/TableStyle.d.ts +37 -0
- package/dist/types/components/order-view/ClientReturnDetails.d.ts +2 -0
- package/dist/types/components/order-view/DynamicTable.d.ts +10 -0
- package/dist/types/components/order-view/details-filters/DetailsFilters.d.ts +2 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/ActionsMenu.d.ts +2 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/actions/ActionItem.d.ts +8 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/actions/ActionStyles.d.ts +3 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/actions/Actions.d.ts +3 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.d.ts +3 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/dropdowns/MenuDropDown.d.ts +2 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.d.ts +2 -0
- package/dist/types/components/order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn.d.ts +10 -0
- package/dist/types/components/order-view/details-filters/right-side-filters/Details.d.ts +2 -0
- package/dist/types/components/order-view/fakedata.d.ts +30 -0
- package/dist/types/components/order-view/flags-action-modal/Actions.d.ts +7 -0
- package/dist/types/components/order-view/flags-action-modal/DetailSection.d.ts +2 -0
- package/dist/types/components/order-view/flags-action-modal/Dropdowns.d.ts +3 -0
- package/dist/types/components/order-view/flags-action-modal/Header.d.ts +2 -0
- package/dist/types/components/order-view/flags-action-modal/StatusIndicator.d.ts +7 -0
- package/dist/types/components/order-view/flags-action-modal/TextSection.d.ts +2 -0
- package/dist/types/components/order-view/flags-action-modal/index.d.ts +2 -0
- package/dist/types/components/order-view/general-information/Status.d.ts +2 -0
- package/dist/types/components/order-view/general-information/dropdowns/Print.d.ts +2 -0
- package/dist/types/components/order-view/general-information/index.d.ts +2 -0
- package/dist/types/components/order-view/generic-table/AuditLogs.d.ts +4 -0
- package/dist/types/components/order-view/helper.d.ts +8 -0
- package/dist/types/components/order-view/index.d.ts +2 -0
- package/dist/types/components/order-view/modalsPopup/CreateReturnModal.d.ts +4 -0
- package/dist/types/components/order-view/modalsPopup/DefectsModal.d.ts +2 -0
- package/dist/types/components/order-view/modalsPopup/ModalManager.d.ts +2 -0
- package/dist/types/components/order-view/northern-southern-info/CustomInput.d.ts +17 -0
- package/dist/types/components/order-view/northern-southern-info/index.d.ts +2 -0
- package/dist/types/components/order-view/notes/AddNote.d.ts +3 -0
- package/dist/types/components/order-view/notes/NoteType.d.ts +2 -0
- package/dist/types/components/order-view/notes/index.d.ts +2 -0
- package/dist/types/components/order-view/notes/logs/NotestableStyles.d.ts +2 -0
- package/dist/types/components/order-view/notes/logs/columns/NotesColumn.d.ts +2 -0
- package/dist/types/components/order-view/notes/logs/fakeData.d.ts +8 -0
- package/dist/types/components/order-view/notes/logs/index.d.ts +2 -0
- package/dist/types/components/order-view/notes/order-dropdown/NewReturnDropdown.d.ts +8 -0
- package/dist/types/components/order-view/notification/FlagTemplate.d.ts +2 -0
- package/dist/types/components/order-view/notification/OrderTemplate.d.ts +2 -0
- package/dist/types/components/order-view/notification/ReminderTemplate.d.ts +2 -0
- package/dist/types/components/order-view/notification/Tabs.d.ts +2 -0
- package/dist/types/components/order-view/notification/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/Dropdown.d.ts +16 -0
- package/dist/types/components/order-view/order-actions/actions/add-resources/CategoryDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/add-resources/DeliveryDate.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/add-resources/DocFileUpload.d.ts +5 -0
- package/dist/types/components/order-view/order-actions/actions/add-resources/DocumentTypeDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/add-resources/Visibility.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/add-resources/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.d.ts +5 -0
- package/dist/types/components/order-view/order-actions/actions/cancel-order/ReturnAction.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/cancel-order/ReturnReason.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/cancel-order/index.d.ts +8 -0
- package/dist/types/components/order-view/order-actions/actions/change-customer-account/ChangeCustomerAccModal.d.ts +5 -0
- package/dist/types/components/order-view/order-actions/actions/charge-log/index.d.ts +11 -0
- package/dist/types/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.d.ts +5 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/ActionDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/ContactMobile.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/ContactPhone.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/ContactTypeDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWith.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWork.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/DeliveryDate.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/EmailAddress.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/TimedServiceDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/customer-info/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/index.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/send-comms/SendComms.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/ConfirmationNotes.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/DeliveryInstructions.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/confirm-order/tables/ReminderStyles.d.ts +8 -0
- package/dist/types/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.d.ts +3 -0
- package/dist/types/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/create-task-reminder/SharedComponents.d.ts +28 -0
- package/dist/types/components/order-view/order-actions/actions/create-task-reminder/TaskModal.d.ts +6 -0
- package/dist/types/components/order-view/order-actions/actions/create-task-reminder/index.d.ts +6 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.d.ts +11 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/Selector.d.ts +11 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.d.ts +8 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/escalation/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/notifications/FlagsTemplate.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/notifications/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.d.ts +6 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/ZoneDropdown.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/index.d.ts +4 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/force-debrief/styles.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/hold-order/HoldOrderModal.d.ts +8 -0
- package/dist/types/components/order-view/order-actions/actions/log-feedback/FeedbackItem.d.ts +7 -0
- package/dist/types/components/order-view/order-actions/actions/log-feedback/LogFeedback.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/modalstyle.d.ts +34 -0
- package/dist/types/components/order-view/order-actions/actions/order-lock/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/release-order/ReleaseOrder.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/send-email/SendEmailModal.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/send-sms/SendSmsModal.d.ts +4 -0
- package/dist/types/components/order-view/order-actions/actions/split-order/SplitOrderTable.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/split-order/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/actions/uncancel-order/UncancelOrder.d.ts +8 -0
- package/dist/types/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.d.ts +5 -0
- package/dist/types/components/order-view/order-actions/actions/unhold-order/UnholdOrder.d.ts +8 -0
- package/dist/types/components/order-view/order-actions/actions/what3words/What3WordsModal.tsx.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/index.d.ts +2 -0
- package/dist/types/components/order-view/order-actions/store.d.ts +100 -0
- package/dist/types/components/order-view/order-actions/types.d.ts +68 -0
- package/dist/types/components/order-view/order-actions/utils.d.ts +25 -0
- package/dist/types/components/order-view/order-details/collapsed-content/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/common/Header.d.ts +5 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/RecipientName.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/contact-info/CallCustomer.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactEmail.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/contact-info/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/location-info/Address.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/location-info/Latitude.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/location-info/Longitude.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/location-info/Postcode.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/location-info/What3words.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/customer-section/location-info/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/footer/AllowTracking.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/footer/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/instruction-section/DeliveryInstructions.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/instruction-section/OrderStatusNote.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/instruction-section/OtherInstructions.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/instruction-section/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/Carrier.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/ConsignmentNumber.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/DeliveryDate.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/Depot.d.ts +5 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/Droptime.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/OrderNumber.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/RecipientReference.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/ScheduleAfter.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/VehicleType.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/orders-section/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/AssemblyType.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/DeliveryPoint.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/OrderServices.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/ServiceLevel.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/ServiceType.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/TimedService.d.ts +2 -0
- package/dist/types/components/order-view/order-details/expanded-content/services-section/index.d.ts +2 -0
- package/dist/types/components/order-view/order-details/helper.d.ts +28 -0
- package/dist/types/components/order-view/order-details/index.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/collapsed-content/index.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/columns/Category.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/columns/Date.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/columns/Reference.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/columns/Type.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/columns/actions/index.d.ts +12 -0
- package/dist/types/components/order-view/order-resources/expanded-content/index.d.ts +2 -0
- package/dist/types/components/order-view/order-resources/helper.d.ts +7 -0
- package/dist/types/components/order-view/products-info/collapsed-content/index.d.ts +2 -0
- package/dist/types/components/order-view/products-info/expanded-content/index.d.ts +7 -0
- package/dist/types/components/order-view/products-info/index.d.ts +2 -0
- package/dist/types/components/order-view/return-client-products/ProductTable.d.ts +7 -0
- package/dist/types/components/order-view/return-client-products/product-table/ReturnProductTable.d.ts +9 -0
- package/dist/types/components/order-view/store.d.ts +178 -0
- package/dist/types/components/order-view/system-event-logs/collapsed-content/index.d.ts +2 -0
- package/dist/types/components/order-view/system-event-logs/columns/Code.d.ts +2 -0
- package/dist/types/components/order-view/system-event-logs/columns/Date.d.ts +2 -0
- package/dist/types/components/order-view/system-event-logs/columns/Event.d.ts +2 -0
- package/dist/types/components/order-view/system-event-logs/columns/Note.d.ts +2 -0
- package/dist/types/components/order-view/system-event-logs/columns/index.d.ts +4 -0
- package/dist/types/components/order-view/system-event-logs/expanded-content/index.d.ts +2 -0
- package/dist/types/components/order-view/system-event-logs/helper.d.ts +7 -0
- package/dist/types/components/order-view/types.d.ts +318 -0
- package/dist/types/components/order-view/utils.d.ts +106 -0
- package/dist/types/components/order-view/view-reminder/AssigneeDropdown.d.ts +2 -0
- package/dist/types/components/order-view/view-reminder/ViewReminder.d.ts +7 -0
- package/dist/types/components/order-view/view-reminder/reminder-styles.d.ts +26 -0
- package/dist/types/components/store.d.ts +70 -0
- package/dist/types/components/types.d.ts +214 -0
- package/dist/types/components/utils.d.ts +20 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/main.d.ts +1 -0
- package/dist/types/setupTests.d.ts +0 -0
- package/package.json +30 -42
- package/dist/OrderViewQueryHandler.d.ts +0 -3
- package/dist/assets/icons/ActionIcon.d.ts +0 -3
- package/dist/assets/icons/ArrowDownIcon.d.ts +0 -6
- package/dist/assets/icons/AssigneIcon.d.ts +0 -3
- package/dist/assets/icons/BulkFilterIcon.d.ts +0 -3
- package/dist/assets/icons/CalendarIcon.d.ts +0 -3
- package/dist/assets/icons/ChevronDownIcon.d.ts +0 -3
- package/dist/assets/icons/ChevronRight.d.ts +0 -3
- package/dist/assets/icons/ChevronUp.d.ts +0 -3
- package/dist/assets/icons/ClientIcon.d.ts +0 -3
- package/dist/assets/icons/CloseIcon.d.ts +0 -3
- package/dist/assets/icons/CollectionLabelIcon.d.ts +0 -3
- package/dist/assets/icons/ConfirmedIcon.d.ts +0 -3
- package/dist/assets/icons/CopyIcon.d.ts +0 -6
- package/dist/assets/icons/CustomerLabelIcon.d.ts +0 -3
- package/dist/assets/icons/CustomerServiceImg.d.ts +0 -3
- package/dist/assets/icons/DateIcon.d.ts +0 -3
- package/dist/assets/icons/DatePickerIcon.d.ts +0 -3
- package/dist/assets/icons/DebriefReadyIcon.d.ts +0 -3
- package/dist/assets/icons/DefectsIcon.d.ts +0 -3
- package/dist/assets/icons/DeliverProductIcon.d.ts +0 -3
- package/dist/assets/icons/DeliveredIcon.d.ts +0 -3
- package/dist/assets/icons/DeliveryNotes.d.ts +0 -3
- package/dist/assets/icons/Divider.d.ts +0 -3
- package/dist/assets/icons/DownIcon.d.ts +0 -3
- package/dist/assets/icons/DownloadIcon.d.ts +0 -3
- package/dist/assets/icons/DustbinIcon.d.ts +0 -3
- package/dist/assets/icons/FilterIcon.d.ts +0 -3
- package/dist/assets/icons/FlexCallIcon.d.ts +0 -3
- package/dist/assets/icons/GrowthImg.d.ts +0 -3
- package/dist/assets/icons/InfoTriangleOutlineIcon.d.ts +0 -3
- package/dist/assets/icons/InnovativeBulb.d.ts +0 -3
- package/dist/assets/icons/Leftarrow.d.ts +0 -3
- package/dist/assets/icons/LoadIcon.d.ts +0 -3
- package/dist/assets/icons/LoadSheetIcon.d.ts +0 -3
- package/dist/assets/icons/LocationIcon.d.ts +0 -3
- package/dist/assets/icons/NextIcon.d.ts +0 -3
- package/dist/assets/icons/NotifyFlag.d.ts +0 -3
- package/dist/assets/icons/PackedImg.d.ts +0 -3
- package/dist/assets/icons/PlusIcon.d.ts +0 -3
- package/dist/assets/icons/PolygonIcon.d.ts +0 -3
- package/dist/assets/icons/PrevIcon.d.ts +0 -3
- package/dist/assets/icons/PrinterIcon.d.ts +0 -3
- package/dist/assets/icons/ProfileImg.d.ts +0 -3
- package/dist/assets/icons/PublicIcon.d.ts +0 -3
- package/dist/assets/icons/QcIcon.d.ts +0 -3
- package/dist/assets/icons/RadioButtonCheckIcon.d.ts +0 -3
- package/dist/assets/icons/RepackLogsIcon.d.ts +0 -3
- package/dist/assets/icons/ReturnProductIcon.d.ts +0 -3
- package/dist/assets/icons/RicherSoundsLogo.d.ts +0 -3
- package/dist/assets/icons/Rightarrow.d.ts +0 -3
- package/dist/assets/icons/RouteIcon.d.ts +0 -3
- package/dist/assets/icons/RoutedIcon.d.ts +0 -3
- package/dist/assets/icons/RunsheetIcon.d.ts +0 -3
- package/dist/assets/icons/SearchIcon.d.ts +0 -3
- package/dist/assets/icons/SpokePhoneIcon.d.ts +0 -3
- package/dist/assets/icons/StatusIcon.d.ts +0 -3
- package/dist/assets/icons/SuccessIcon.d.ts +0 -3
- package/dist/assets/icons/TrueMatkIcon.d.ts +0 -3
- package/dist/assets/icons/UpArrowCircleOutlineIcon.d.ts +0 -3
- package/dist/assets/icons/UploadIcon.d.ts +0 -3
- package/dist/assets/icons/What3WordsIcon.d.ts +0 -3
- package/dist/assets/icons/index.d.ts +0 -21
- package/dist/common/CaretDownFilledIcon.d.ts +0 -3
- package/dist/common/CaretUpFilledIcon.d.ts +0 -3
- package/dist/common/SortIcon.d.ts +0 -3
- package/dist/common/checkbox/index.d.ts +0 -11
- package/dist/common/copy/CopyText.d.ts +0 -6
- package/dist/common/custom-input/CustomInput.d.ts +0 -5
- package/dist/common/custom-switch/index.d.ts +0 -6
- package/dist/common/date-picker/CustomDatePicker.d.ts +0 -13
- package/dist/common/date-picker/FilterByType.d.ts +0 -4
- package/dist/common/date-picker/header/ClearDate.d.ts +0 -5
- package/dist/common/date-picker/header/DatePickerHeader.d.ts +0 -6
- package/dist/common/date-picker/header/DatePickerHeaderDropdown.d.ts +0 -9
- package/dist/common/date-picker/header/Header.d.ts +0 -4
- package/dist/common/date-picker/header/MonthOrYearPicker.d.ts +0 -9
- package/dist/common/date-picker/header/PromptOrClearDate.d.ts +0 -10
- package/dist/common/date-picker/index.d.ts +0 -15
- package/dist/common/date-picker/legend/DateLegend.d.ts +0 -8
- package/dist/common/date-picker/legend/index.d.ts +0 -4
- package/dist/common/date-picker/modal/Modal.d.ts +0 -7
- package/dist/common/date-picker/range-date-filter/RangeDates.d.ts +0 -4
- package/dist/common/date-picker/range-date-filter/Seperator.d.ts +0 -4
- package/dist/common/date-picker/range-date-filter/SingleRangeDateItem.d.ts +0 -10
- package/dist/common/date-picker/range-date-filter/index.d.ts +0 -9
- package/dist/common/date-picker/single-date-filter/SingleDateFilter.d.ts +0 -9
- package/dist/common/expand-collapse/index.d.ts +0 -8
- package/dist/common/hooks/useCopyToClipboard.d.ts +0 -2
- package/dist/common/infiniteScrolling.d.ts +0 -5
- package/dist/common/modals/order-action-modal/BackgroundModal.d.ts +0 -6
- package/dist/common/modals/order-action-modal/OrderActionModal.d.ts +0 -17
- package/dist/common/modals/order-action-modal/footer/OrderActionFooter.d.ts +0 -11
- package/dist/common/modals/order-action-modal/header/AdditionalInformation.d.ts +0 -6
- package/dist/common/modals/order-action-modal/header/OrderActionHeader.d.ts +0 -10
- package/dist/common/radio-group/RadioButton.d.ts +0 -4
- package/dist/common/radio-group/RadioButtonGroup.d.ts +0 -4
- package/dist/common/radio-group/types.d.ts +0 -26
- package/dist/common/scrollbar/index.d.ts +0 -7
- package/dist/common/services-slider/ServiceSlider.d.ts +0 -10
- package/dist/common/services-slider/helper.d.ts +0 -3
- package/dist/common/utils.d.ts +0 -4
- package/dist/components/client-portal/DateFilterStore.d.ts +0 -15
- package/dist/components/client-portal/OutstandingTable.d.ts +0 -3
- package/dist/components/client-portal/ReturnAfterSearchBar.d.ts +0 -4
- package/dist/components/client-portal/ReturnOverview.d.ts +0 -3
- package/dist/components/client-portal/ReturnRTFilters.d.ts +0 -11
- package/dist/components/client-portal/ReturnSearchBar.d.ts +0 -4
- package/dist/components/client-portal/ReturnStatus.d.ts +0 -8
- package/dist/components/client-portal/return-confirm/ConfirmedMain.d.ts +0 -3
- package/dist/components/client-portal/return-confirm/ReturnConfirmedTable.d.ts +0 -3
- package/dist/components/fakeData.d.ts +0 -79
- package/dist/components/order-daily-overview/common/fakedata.d.ts +0 -110
- package/dist/components/order-daily-overview/common/interface.d.ts +0 -41
- package/dist/components/order-daily-overview/common/mediaQuery.d.ts +0 -4
- package/dist/components/order-daily-overview/filters/BulkFilter.d.ts +0 -3
- package/dist/components/order-daily-overview/filters/BulkFilterStyle.d.ts +0 -3
- package/dist/components/order-daily-overview/filters/FilterStyle.d.ts +0 -9
- package/dist/components/order-daily-overview/filters/Filters.d.ts +0 -3
- package/dist/components/order-daily-overview/header/checkbox-wrapper/CheckBoxWrapper.d.ts +0 -14
- package/dist/components/order-daily-overview/header/input/dropdown/index.d.ts +0 -8
- package/dist/components/order-daily-overview/header/input/dropdown/styles.d.ts +0 -3
- package/dist/components/order-daily-overview/header/loader/Loader.d.ts +0 -7
- package/dist/components/order-daily-overview/header/route-header/ClientRouterHeader.d.ts +0 -11
- package/dist/components/order-daily-overview/header/route-header/RouterHeader.d.ts +0 -11
- package/dist/components/order-daily-overview/header/route-header/RouterHeaderStyle.d.ts +0 -5
- package/dist/components/order-daily-overview/header/route-header/breadCrumb/BreadCrumb.d.ts +0 -8
- package/dist/components/order-daily-overview/header/route-header/search/SearchType.d.ts +0 -3
- package/dist/components/order-daily-overview/header/route-header/title/HeaderTitle.d.ts +0 -6
- package/dist/components/order-daily-overview/header/table-filter/TableFilter.d.ts +0 -7
- package/dist/components/order-daily-overview/header/table-filter/TableFilterStyle.d.ts +0 -5
- package/dist/components/order-daily-overview/header-filters/HeaderFilter.d.ts +0 -3
- package/dist/components/order-daily-overview/header-filters/SelectionFilter.d.ts +0 -6
- package/dist/components/order-daily-overview/header-filters/Styledfilters.d.ts +0 -27
- package/dist/components/order-daily-overview/header-filters/filterStore.d.ts +0 -16
- package/dist/components/order-daily-overview/header-filters/overViewFilter.d.ts +0 -17
- package/dist/components/order-daily-overview/index.d.ts +0 -3
- package/dist/components/order-daily-overview/return-after-table/ReturnAfterTable.d.ts +0 -3
- package/dist/components/order-daily-overview/return-after-table/table/OrderTable.d.ts +0 -3
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.d.ts +0 -16
- package/dist/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.d.ts +0 -4
- package/dist/components/order-daily-overview/return-after-table/table-filters/TableFilters.d.ts +0 -3
- package/dist/components/order-daily-overview/return-order-table/FilterStore.d.ts +0 -23
- package/dist/components/order-daily-overview/return-order-table/ReturnTable.d.ts +0 -3
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/OrdersFilters.d.ts +0 -3
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnFilter.d.ts +0 -6
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.d.ts +0 -3
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/RightFilters.d.ts +0 -3
- package/dist/components/order-daily-overview/return-order-table/return-orders-filters/returnstyles.d.ts +0 -23
- package/dist/components/order-daily-overview/shared/elements/PrintDropDown.d.ts +0 -9
- package/dist/components/order-daily-overview/shared/interface.d.ts +0 -155
- package/dist/components/order-daily-overview/shared/types.d.ts +0 -1
- package/dist/components/order-daily-overview/shared/utlis.d.ts +0 -7
- package/dist/components/order-daily-overview/store/store.d.ts +0 -25
- package/dist/components/order-daily-overview/table/ReturnTable.d.ts +0 -3
- package/dist/components/order-daily-overview/table/table-data/helper.d.ts +0 -2
- package/dist/components/order-daily-overview/table/table-data/styles.d.ts +0 -44
- package/dist/components/order-daily-overview/table-view/Pagination.d.ts +0 -3
- package/dist/components/order-daily-overview/table-view/PaginationStyle.d.ts +0 -12
- package/dist/components/order-daily-overview/table-view/ReturnPagination.d.ts +0 -3
- package/dist/components/order-daily-overview/table-view/TableStyle.d.ts +0 -38
- package/dist/components/order-view/ClientReturnDetails.d.ts +0 -3
- package/dist/components/order-view/DynamicTable.d.ts +0 -11
- package/dist/components/order-view/details-filters/DetailsFilters.d.ts +0 -3
- package/dist/components/order-view/details-filters/left-side-filters/ActionsMenu.d.ts +0 -3
- package/dist/components/order-view/details-filters/left-side-filters/actions/ActionItem.d.ts +0 -8
- package/dist/components/order-view/details-filters/left-side-filters/actions/ActionStyles.d.ts +0 -4
- package/dist/components/order-view/details-filters/left-side-filters/actions/Actions.d.ts +0 -3
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.d.ts +0 -4
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/MenuDropDown.d.ts +0 -3
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.d.ts +0 -3
- package/dist/components/order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn.d.ts +0 -10
- package/dist/components/order-view/details-filters/right-side-filters/Details.d.ts +0 -3
- package/dist/components/order-view/fakedata.d.ts +0 -30
- package/dist/components/order-view/flags-action-modal/Actions.d.ts +0 -8
- package/dist/components/order-view/flags-action-modal/DetailSection.d.ts +0 -3
- package/dist/components/order-view/flags-action-modal/Dropdowns.d.ts +0 -4
- package/dist/components/order-view/flags-action-modal/Header.d.ts +0 -3
- package/dist/components/order-view/flags-action-modal/StatusIndicator.d.ts +0 -9
- package/dist/components/order-view/flags-action-modal/TextSection.d.ts +0 -3
- package/dist/components/order-view/flags-action-modal/index.d.ts +0 -3
- package/dist/components/order-view/general-information/Status.d.ts +0 -3
- package/dist/components/order-view/general-information/dropdowns/Print.d.ts +0 -3
- package/dist/components/order-view/general-information/index.d.ts +0 -3
- package/dist/components/order-view/generic-table/AuditLogs.d.ts +0 -4
- package/dist/components/order-view/helper.d.ts +0 -8
- package/dist/components/order-view/index.d.ts +0 -3
- package/dist/components/order-view/modalsPopup/CreateReturnModal.d.ts +0 -4
- package/dist/components/order-view/modalsPopup/DefectsModal.d.ts +0 -3
- package/dist/components/order-view/modalsPopup/ModalManager.d.ts +0 -3
- package/dist/components/order-view/northern-southern-info/CustomInput.d.ts +0 -17
- package/dist/components/order-view/northern-southern-info/index.d.ts +0 -3
- package/dist/components/order-view/notes/AddNote.d.ts +0 -4
- package/dist/components/order-view/notes/NoteType.d.ts +0 -3
- package/dist/components/order-view/notes/index.d.ts +0 -3
- package/dist/components/order-view/notes/logs/NotestableStyles.d.ts +0 -3
- package/dist/components/order-view/notes/logs/columns/NotesColumn.d.ts +0 -3
- package/dist/components/order-view/notes/logs/fakeData.d.ts +0 -8
- package/dist/components/order-view/notes/logs/helper.d.ts +0 -5
- package/dist/components/order-view/notes/logs/index.d.ts +0 -3
- package/dist/components/order-view/notes/order-dropdown/NewReturnDropdown.d.ts +0 -9
- package/dist/components/order-view/notification/FlagTemplate.d.ts +0 -3
- package/dist/components/order-view/notification/OrderTemplate.d.ts +0 -3
- package/dist/components/order-view/notification/ReminderTemplate.d.ts +0 -3
- package/dist/components/order-view/notification/Tabs.d.ts +0 -3
- package/dist/components/order-view/notification/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/Dropdown.d.ts +0 -17
- package/dist/components/order-view/order-actions/actions/add-resources/CategoryDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/add-resources/DeliveryDate.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/add-resources/DocFileUpload.d.ts +0 -6
- package/dist/components/order-view/order-actions/actions/add-resources/DocumentTypeDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/add-resources/Visibility.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/add-resources/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.d.ts +0 -5
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnAction.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/cancel-order/ReturnReason.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/cancel-order/index.d.ts +0 -9
- package/dist/components/order-view/order-actions/actions/change-customer-account/ChangeCustomerAccModal.d.ts +0 -6
- package/dist/components/order-view/order-actions/actions/charge-log/index.d.ts +0 -11
- package/dist/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.d.ts +0 -6
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ActionDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactMobile.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactPhone.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactTypeDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWith.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWork.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/DeliveryDate.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/EmailAddress.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/TimedServiceDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/customer-info/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/index.d.ts +0 -8
- package/dist/components/order-view/order-actions/actions/confirm-order/send-comms/SendComms.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/ConfirmationNotes.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/DeliveryInstructions.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/confirm-order/tables/ReminderStyles.d.ts +0 -9
- package/dist/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.d.ts +0 -4
- package/dist/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/create-task-reminder/SharedComponents.d.ts +0 -30
- package/dist/components/order-view/order-actions/actions/create-task-reminder/TaskModal.d.ts +0 -8
- package/dist/components/order-view/order-actions/actions/create-task-reminder/index.d.ts +0 -8
- package/dist/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.d.ts +0 -11
- package/dist/components/order-view/order-actions/actions/force-debrief/Selector.d.ts +0 -11
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.d.ts +0 -8
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/FlagsTemplate.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/ZoneDropdown.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/index.d.ts +0 -4
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/force-debrief/styles.d.ts +0 -8
- package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.d.ts +0 -9
- package/dist/components/order-view/order-actions/actions/log-feedback/FeedbackItem.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/log-feedback/LogFeedback.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/modalstyle.d.ts +0 -35
- package/dist/components/order-view/order-actions/actions/order-lock/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/release-order/ReleaseOrder.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/send-email/SendEmailModal.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/send-sms/SendSmsModal.d.ts +0 -4
- package/dist/components/order-view/order-actions/actions/split-order/SplitOrderTable.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/split-order/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrder.d.ts +0 -9
- package/dist/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.d.ts +0 -5
- package/dist/components/order-view/order-actions/actions/unhold-order/UnholdOrder.d.ts +0 -9
- package/dist/components/order-view/order-actions/actions/what3words/What3WordsModal.tsx.d.ts +0 -3
- package/dist/components/order-view/order-actions/index.d.ts +0 -3
- package/dist/components/order-view/order-actions/store.d.ts +0 -100
- package/dist/components/order-view/order-actions/types.d.ts +0 -68
- package/dist/components/order-view/order-actions/utils.d.ts +0 -25
- package/dist/components/order-view/order-details/collapsed-content/index.d.ts +0 -3
- package/dist/components/order-view/order-details/common/Header.d.ts +0 -6
- package/dist/components/order-view/order-details/expanded-content/customer-section/RecipientName.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/CallCustomer.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactEmail.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/contact-info/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Address.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Latitude.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Longitude.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/Postcode.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/What3words.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/customer-section/location-info/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/footer/AllowTracking.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/footer/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/instruction-section/DeliveryInstructions.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/instruction-section/OrderStatusNote.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/instruction-section/OtherInstructions.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/instruction-section/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/Carrier.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/ConsignmentNumber.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/DeliveryDate.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/Depot.d.ts +0 -5
- package/dist/components/order-view/order-details/expanded-content/orders-section/Droptime.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/OrderNumber.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/RecipientReference.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/ScheduleAfter.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/VehicleType.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/orders-section/index.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/AssemblyType.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/DeliveryPoint.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/OrderServices.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceLevel.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/ServiceType.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/TimedService.d.ts +0 -3
- package/dist/components/order-view/order-details/expanded-content/services-section/index.d.ts +0 -3
- package/dist/components/order-view/order-details/helper.d.ts +0 -28
- package/dist/components/order-view/order-details/index.d.ts +0 -3
- package/dist/components/order-view/order-resources/collapsed-content/index.d.ts +0 -3
- package/dist/components/order-view/order-resources/columns/Category.d.ts +0 -3
- package/dist/components/order-view/order-resources/columns/Date.d.ts +0 -3
- package/dist/components/order-view/order-resources/columns/Reference.d.ts +0 -3
- package/dist/components/order-view/order-resources/columns/Type.d.ts +0 -3
- package/dist/components/order-view/order-resources/columns/actions/index.d.ts +0 -13
- package/dist/components/order-view/order-resources/columns/index.d.ts +0 -5
- package/dist/components/order-view/order-resources/expanded-content/index.d.ts +0 -3
- package/dist/components/order-view/order-resources/helper.d.ts +0 -7
- package/dist/components/order-view/products-info/collapsed-content/index.d.ts +0 -3
- package/dist/components/order-view/products-info/expanded-content/index.d.ts +0 -8
- package/dist/components/order-view/products-info/index.d.ts +0 -3
- package/dist/components/order-view/return-client-products/ProductTable.d.ts +0 -8
- package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.d.ts +0 -9
- package/dist/components/order-view/store.d.ts +0 -178
- package/dist/components/order-view/system-event-logs/collapsed-content/index.d.ts +0 -3
- package/dist/components/order-view/system-event-logs/columns/Code.d.ts +0 -3
- package/dist/components/order-view/system-event-logs/columns/Date.d.ts +0 -3
- package/dist/components/order-view/system-event-logs/columns/Event.d.ts +0 -3
- package/dist/components/order-view/system-event-logs/columns/Note.d.ts +0 -3
- package/dist/components/order-view/system-event-logs/columns/index.d.ts +0 -4
- package/dist/components/order-view/system-event-logs/expanded-content/index.d.ts +0 -3
- package/dist/components/order-view/system-event-logs/helper.d.ts +0 -7
- package/dist/components/order-view/types.d.ts +0 -319
- package/dist/components/order-view/utils.d.ts +0 -106
- package/dist/components/order-view/view-reminder/AssigneeDropdown.d.ts +0 -3
- package/dist/components/order-view/view-reminder/ViewReminder.d.ts +0 -7
- package/dist/components/order-view/view-reminder/reminder-styles.d.ts +0 -27
- package/dist/components/store.d.ts +0 -70
- package/dist/components/types.d.ts +0 -215
- package/dist/components/utils.d.ts +0 -20
- package/dist/dms-client-return.cjs.development.js +0 -20559
- package/dist/dms-client-return.cjs.development.js.map +0 -1
- package/dist/dms-client-return.cjs.production.min.js +0 -2
- package/dist/dms-client-return.cjs.production.min.js.map +0 -1
- package/dist/dms-client-return.esm.js +0 -20551
- package/dist/dms-client-return.esm.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/setupTests.d.ts +0 -1
- package/src/OrderViewQueryHandler.tsx +0 -14
- package/src/assets/icons/ActionIcon.tsx +0 -23
- package/src/assets/icons/ArrowDownIcon.tsx +0 -28
- package/src/assets/icons/AssigneIcon.tsx +0 -30
- package/src/assets/icons/BulkFilterIcon.tsx +0 -11
- package/src/assets/icons/CalendarIcon.tsx +0 -25
- package/src/assets/icons/ChevronDownIcon.tsx +0 -22
- package/src/assets/icons/ChevronRight.tsx +0 -20
- package/src/assets/icons/ChevronUp.tsx +0 -24
- package/src/assets/icons/ClientIcon.tsx +0 -18
- package/src/assets/icons/CloseIcon.tsx +0 -19
- package/src/assets/icons/CollectionLabelIcon.tsx +0 -27
- package/src/assets/icons/ConfirmedIcon.tsx +0 -33
- package/src/assets/icons/CopyIcon.tsx +0 -26
- package/src/assets/icons/CustomerLabelIcon.tsx +0 -27
- package/src/assets/icons/CustomerServiceImg.tsx +0 -32
- package/src/assets/icons/DateIcon.tsx +0 -28
- package/src/assets/icons/DatePickerIcon.tsx +0 -23
- package/src/assets/icons/DebriefReadyIcon.tsx +0 -21
- package/src/assets/icons/DefectsIcon.tsx +0 -43
- package/src/assets/icons/DeliverProductIcon.tsx +0 -42
- package/src/assets/icons/DeliveredIcon.tsx +0 -33
- package/src/assets/icons/DeliveryNotes.tsx +0 -27
- package/src/assets/icons/Divider.tsx +0 -23
- package/src/assets/icons/DownIcon.tsx +0 -23
- package/src/assets/icons/DownloadIcon.tsx +0 -36
- package/src/assets/icons/DustbinIcon.tsx +0 -20
- package/src/assets/icons/FilterIcon.tsx +0 -34
- package/src/assets/icons/FlexCallIcon.tsx +0 -40
- package/src/assets/icons/GrowthImg.tsx +0 -34
- package/src/assets/icons/InfoTriangleOutlineIcon.tsx +0 -26
- package/src/assets/icons/InnovativeBulb.tsx +0 -34
- package/src/assets/icons/Leftarrow.tsx +0 -19
- package/src/assets/icons/LoadIcon.tsx +0 -23
- package/src/assets/icons/LoadSheetIcon.tsx +0 -20
- package/src/assets/icons/LocationIcon.tsx +0 -33
- package/src/assets/icons/NextIcon.tsx +0 -11
- package/src/assets/icons/NotifyFlag.tsx +0 -23
- package/src/assets/icons/PackedImg.tsx +0 -34
- package/src/assets/icons/PlusIcon.tsx +0 -20
- package/src/assets/icons/PolygonIcon.tsx +0 -20
- package/src/assets/icons/PrevIcon.tsx +0 -11
- package/src/assets/icons/PrinterIcon.tsx +0 -20
- package/src/assets/icons/ProfileImg.tsx +0 -34
- package/src/assets/icons/PublicIcon.tsx +0 -24
- package/src/assets/icons/QcIcon.tsx +0 -21
- package/src/assets/icons/RadioButtonCheckIcon.tsx +0 -35
- package/src/assets/icons/RepackLogsIcon.tsx +0 -33
- package/src/assets/icons/ReturnProductIcon.tsx +0 -23
- package/src/assets/icons/RicherSoundsLogo.tsx +0 -43
- package/src/assets/icons/Rightarrow.tsx +0 -19
- package/src/assets/icons/RouteIcon.tsx +0 -38
- package/src/assets/icons/RoutedIcon.tsx +0 -33
- package/src/assets/icons/RunsheetIcon.tsx +0 -14
- package/src/assets/icons/SearchIcon.tsx +0 -26
- package/src/assets/icons/SpokePhoneIcon.tsx +0 -40
- package/src/assets/icons/StatusIcon.tsx +0 -28
- package/src/assets/icons/SuccessIcon.tsx +0 -49
- package/src/assets/icons/TrueMatkIcon.tsx +0 -11
- package/src/assets/icons/UpArrowCircleOutlineIcon.tsx +0 -32
- package/src/assets/icons/UploadIcon.tsx +0 -32
- package/src/assets/icons/What3WordsIcon.tsx +0 -44
- package/src/common/CaretDownFilledIcon.tsx +0 -27
- package/src/common/CaretUpFilledIcon.tsx +0 -27
- package/src/common/SortIcon.tsx +0 -23
- package/src/common/checkbox/index.tsx +0 -154
- package/src/common/copy/CopyText.tsx +0 -24
- package/src/common/custom-input/CustomInput.tsx +0 -24
- package/src/common/custom-switch/index.tsx +0 -58
- package/src/common/date-picker/CustomDatePicker.tsx +0 -142
- package/src/common/date-picker/FilterByType.tsx +0 -32
- package/src/common/date-picker/header/ClearDate.tsx +0 -32
- package/src/common/date-picker/header/DatePickerHeader.tsx +0 -70
- package/src/common/date-picker/header/DatePickerHeaderDropdown.tsx +0 -64
- package/src/common/date-picker/header/Header.tsx +0 -17
- package/src/common/date-picker/header/MonthOrYearPicker.tsx +0 -106
- package/src/common/date-picker/header/PromptOrClearDate.tsx +0 -60
- package/src/common/date-picker/index.tsx +0 -217
- package/src/common/date-picker/legend/DateLegend.tsx +0 -36
- package/src/common/date-picker/legend/index.tsx +0 -24
- package/src/common/date-picker/modal/Modal.tsx +0 -35
- package/src/common/date-picker/range-date-filter/RangeDates.tsx +0 -102
- package/src/common/date-picker/range-date-filter/Seperator.tsx +0 -17
- package/src/common/date-picker/range-date-filter/SingleRangeDateItem.tsx +0 -62
- package/src/common/date-picker/range-date-filter/index.tsx +0 -47
- package/src/common/date-picker/single-date-filter/SingleDateFilter.tsx +0 -43
- package/src/common/expand-collapse/index.tsx +0 -112
- package/src/common/hooks/useCopyToClipboard.ts +0 -17
- package/src/common/infiniteScrolling.tsx +0 -54
- package/src/common/modals/order-action-modal/BackgroundModal.tsx +0 -31
- package/src/common/modals/order-action-modal/OrderActionModal.tsx +0 -65
- package/src/common/modals/order-action-modal/footer/OrderActionFooter.tsx +0 -46
- package/src/common/modals/order-action-modal/header/AdditionalInformation.tsx +0 -51
- package/src/common/modals/order-action-modal/header/OrderActionHeader.tsx +0 -78
- package/src/common/radio-group/RadioButton.tsx +0 -61
- package/src/common/radio-group/RadioButtonGroup.tsx +0 -113
- package/src/common/radio-group/types.ts +0 -32
- package/src/common/scrollbar/index.tsx +0 -39
- package/src/common/services-slider/ServiceSlider.tsx +0 -59
- package/src/common/services-slider/helper.ts +0 -26
- package/src/common/style.ts +0 -24
- package/src/common/utils.ts +0 -9
- package/src/components/client-portal/DateFilterStore.ts +0 -187
- package/src/components/client-portal/OutstandingTable.tsx +0 -357
- package/src/components/client-portal/ReturnAfterSearchBar.tsx +0 -197
- package/src/components/client-portal/ReturnOverview.tsx +0 -268
- package/src/components/client-portal/ReturnRTFilters.tsx +0 -363
- package/src/components/client-portal/ReturnSearchBar.tsx +0 -183
- package/src/components/client-portal/ReturnStatus.tsx +0 -255
- package/src/components/client-portal/return-confirm/ConfirmedMain.tsx +0 -174
- package/src/components/client-portal/return-confirm/ReturnConfirmedTable.tsx +0 -349
- package/src/components/fakeData.ts +0 -342
- package/src/components/order-daily-overview/common/fakedata.tsx +0 -224
- package/src/components/order-daily-overview/common/interface.ts +0 -47
- package/src/components/order-daily-overview/common/mediaQuery.ts +0 -13
- package/src/components/order-daily-overview/filters/BulkFilter.tsx +0 -50
- package/src/components/order-daily-overview/filters/BulkFilterStyle.tsx +0 -53
- package/src/components/order-daily-overview/filters/FilterStyle.tsx +0 -138
- package/src/components/order-daily-overview/filters/Filters.tsx +0 -22
- package/src/components/order-daily-overview/header/checkbox-wrapper/CheckBoxWrapper.tsx +0 -73
- package/src/components/order-daily-overview/header/input/dropdown/index.tsx +0 -17
- package/src/components/order-daily-overview/header/input/dropdown/styles.ts +0 -107
- package/src/components/order-daily-overview/header/loader/Loader.tsx +0 -84
- package/src/components/order-daily-overview/header/route-header/ClientRouterHeader.tsx +0 -208
- package/src/components/order-daily-overview/header/route-header/RouterHeader.tsx +0 -82
- package/src/components/order-daily-overview/header/route-header/RouterHeaderStyle.tsx +0 -52
- package/src/components/order-daily-overview/header/route-header/breadCrumb/BreadCrumb.tsx +0 -37
- package/src/components/order-daily-overview/header/route-header/search/SearchType.tsx +0 -169
- package/src/components/order-daily-overview/header/route-header/title/HeaderTitle.tsx +0 -27
- package/src/components/order-daily-overview/header/table-filter/TableFilter.tsx +0 -98
- package/src/components/order-daily-overview/header/table-filter/TableFilterStyle.tsx +0 -48
- package/src/components/order-daily-overview/header-filters/HeaderFilter.tsx +0 -25
- package/src/components/order-daily-overview/header-filters/SelectionFilter.tsx +0 -453
- package/src/components/order-daily-overview/header-filters/Styledfilters.tsx +0 -216
- package/src/components/order-daily-overview/header-filters/filterStore.ts +0 -160
- package/src/components/order-daily-overview/header-filters/overViewFilter.ts +0 -103
- package/src/components/order-daily-overview/index.tsx +0 -270
- package/src/components/order-daily-overview/return-after-table/ReturnAfterTable.tsx +0 -224
- package/src/components/order-daily-overview/return-after-table/table/OrderTable.tsx +0 -414
- package/src/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.ts +0 -269
- package/src/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.tsx +0 -329
- package/src/components/order-daily-overview/return-after-table/table-filters/TableFilters.tsx +0 -33
- package/src/components/order-daily-overview/return-order-table/FilterStore.ts +0 -286
- package/src/components/order-daily-overview/return-order-table/ReturnTable.tsx +0 -189
- package/src/components/order-daily-overview/return-order-table/return-orders-filters/OrdersFilters.tsx +0 -7
- package/src/components/order-daily-overview/return-order-table/return-orders-filters/ReturnFilter.tsx +0 -114
- package/src/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.tsx +0 -542
- package/src/components/order-daily-overview/return-order-table/return-orders-filters/RightFilters.tsx +0 -122
- package/src/components/order-daily-overview/return-order-table/return-orders-filters/returnstyles.ts +0 -610
- package/src/components/order-daily-overview/shared/elements/PrintDropDown.tsx +0 -84
- package/src/components/order-daily-overview/shared/interface.ts +0 -210
- package/src/components/order-daily-overview/shared/types.ts +0 -3
- package/src/components/order-daily-overview/shared/utlis.ts +0 -86
- package/src/components/order-daily-overview/store/store.ts +0 -119
- package/src/components/order-daily-overview/table/ReturnTable.tsx +0 -483
- package/src/components/order-daily-overview/table/table-data/helper.ts +0 -49
- package/src/components/order-daily-overview/table/table-data/styles.ts +0 -635
- package/src/components/order-daily-overview/table-view/Pagination.tsx +0 -137
- package/src/components/order-daily-overview/table-view/PaginationStyle.tsx +0 -97
- package/src/components/order-daily-overview/table-view/ReturnPagination.tsx +0 -136
- package/src/components/order-daily-overview/table-view/TableStyle.tsx +0 -514
- package/src/components/order-view/ClientReturnDetails.tsx +0 -7
- package/src/components/order-view/DynamicTable.tsx +0 -268
- package/src/components/order-view/details-filters/DetailsFilters.tsx +0 -34
- package/src/components/order-view/details-filters/left-side-filters/ActionsMenu.tsx +0 -24
- package/src/components/order-view/details-filters/left-side-filters/actions/ActionItem.tsx +0 -32
- package/src/components/order-view/details-filters/left-side-filters/actions/ActionStyles.tsx +0 -62
- package/src/components/order-view/details-filters/left-side-filters/actions/Actions.tsx +0 -33
- package/src/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.tsx +0 -112
- package/src/components/order-view/details-filters/left-side-filters/dropdowns/MenuDropDown.tsx +0 -66
- package/src/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.tsx +0 -131
- package/src/components/order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn.tsx +0 -78
- package/src/components/order-view/details-filters/right-side-filters/Details.tsx +0 -80
- package/src/components/order-view/fakedata.ts +0 -194
- package/src/components/order-view/flags-action-modal/Actions.tsx +0 -173
- package/src/components/order-view/flags-action-modal/DetailSection.tsx +0 -52
- package/src/components/order-view/flags-action-modal/Dropdowns.tsx +0 -118
- package/src/components/order-view/flags-action-modal/Header.tsx +0 -162
- package/src/components/order-view/flags-action-modal/StatusIndicator.tsx +0 -71
- package/src/components/order-view/flags-action-modal/TextSection.tsx +0 -37
- package/src/components/order-view/flags-action-modal/index.tsx +0 -145
- package/src/components/order-view/general-information/Status.tsx +0 -178
- package/src/components/order-view/general-information/dropdowns/Print.tsx +0 -172
- package/src/components/order-view/general-information/index.tsx +0 -17
- package/src/components/order-view/generic-table/AuditLogs.tsx +0 -130
- package/src/components/order-view/helper.ts +0 -37
- package/src/components/order-view/index.tsx +0 -577
- package/src/components/order-view/modalsPopup/CreateReturnModal.tsx +0 -117
- package/src/components/order-view/modalsPopup/DefectsModal.tsx +0 -45
- package/src/components/order-view/modalsPopup/ModalManager.tsx +0 -262
- package/src/components/order-view/northern-southern-info/CustomInput.tsx +0 -80
- package/src/components/order-view/northern-southern-info/index.tsx +0 -94
- package/src/components/order-view/notes/AddNote.tsx +0 -186
- package/src/components/order-view/notes/NoteType.tsx +0 -56
- package/src/components/order-view/notes/index.tsx +0 -158
- package/src/components/order-view/notes/logs/NotestableStyles.tsx +0 -239
- package/src/components/order-view/notes/logs/columns/NotesColumn.tsx +0 -29
- package/src/components/order-view/notes/logs/fakeData.ts +0 -10
- package/src/components/order-view/notes/logs/helper.ts +0 -14
- package/src/components/order-view/notes/logs/index.tsx +0 -21
- package/src/components/order-view/notes/order-dropdown/NewReturnDropdown.tsx +0 -134
- package/src/components/order-view/notification/FlagTemplate.tsx +0 -81
- package/src/components/order-view/notification/OrderTemplate.tsx +0 -494
- package/src/components/order-view/notification/ReminderTemplate.tsx +0 -105
- package/src/components/order-view/notification/Tabs.tsx +0 -98
- package/src/components/order-view/notification/index.tsx +0 -446
- package/src/components/order-view/order-actions/Dropdown.tsx +0 -64
- package/src/components/order-view/order-actions/actions/add-resources/CategoryDropdown.tsx +0 -40
- package/src/components/order-view/order-actions/actions/add-resources/DeliveryDate.tsx +0 -89
- package/src/components/order-view/order-actions/actions/add-resources/DocFileUpload.tsx +0 -229
- package/src/components/order-view/order-actions/actions/add-resources/DocumentTypeDropdown.tsx +0 -40
- package/src/components/order-view/order-actions/actions/add-resources/Visibility.tsx +0 -41
- package/src/components/order-view/order-actions/actions/add-resources/index.tsx +0 -258
- package/src/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.tsx +0 -345
- package/src/components/order-view/order-actions/actions/cancel-order/ReturnAction.tsx +0 -38
- package/src/components/order-view/order-actions/actions/cancel-order/ReturnReason.tsx +0 -37
- package/src/components/order-view/order-actions/actions/cancel-order/index.tsx +0 -300
- package/src/components/order-view/order-actions/actions/change-customer-account/ChangeCustomerAccModal.tsx +0 -130
- package/src/components/order-view/order-actions/actions/charge-log/index.tsx +0 -420
- package/src/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.tsx +0 -120
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/ActionDropdown.tsx +0 -55
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactMobile.tsx +0 -90
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactPhone.tsx +0 -93
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactTypeDropdown.tsx +0 -38
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWith.tsx +0 -28
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWork.tsx +0 -91
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/DeliveryDate.tsx +0 -105
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/EmailAddress.tsx +0 -73
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/TimedServiceDropdown.tsx +0 -56
- package/src/components/order-view/order-actions/actions/confirm-order/customer-info/index.tsx +0 -78
- package/src/components/order-view/order-actions/actions/confirm-order/index.tsx +0 -385
- package/src/components/order-view/order-actions/actions/confirm-order/send-comms/SendComms.tsx +0 -86
- package/src/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/ConfirmationNotes.tsx +0 -28
- package/src/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/DeliveryInstructions.tsx +0 -28
- package/src/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/index.tsx +0 -55
- package/src/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.tsx +0 -162
- package/src/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.tsx +0 -87
- package/src/components/order-view/order-actions/actions/confirm-order/tables/ReminderStyles.tsx +0 -292
- package/src/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.tsx +0 -447
- package/src/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.tsx +0 -198
- package/src/components/order-view/order-actions/actions/create-task-reminder/SharedComponents.tsx +0 -120
- package/src/components/order-view/order-actions/actions/create-task-reminder/TaskModal.tsx +0 -132
- package/src/components/order-view/order-actions/actions/create-task-reminder/index.tsx +0 -147
- package/src/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.tsx +0 -94
- package/src/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.tsx +0 -652
- package/src/components/order-view/order-actions/actions/force-debrief/Selector.tsx +0 -65
- package/src/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.tsx +0 -94
- package/src/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.tsx +0 -106
- package/src/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.tsx +0 -77
- package/src/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.tsx +0 -78
- package/src/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.tsx +0 -77
- package/src/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.tsx +0 -124
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.tsx +0 -92
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.tsx +0 -88
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.tsx +0 -119
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/index.tsx +0 -16
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/FlagsTemplate.tsx +0 -46
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.tsx +0 -117
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.tsx +0 -32
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/index.tsx +0 -180
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.tsx +0 -150
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.tsx +0 -40
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.tsx +0 -108
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.tsx +0 -37
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.tsx +0 -48
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/ZoneDropdown.tsx +0 -27
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.tsx +0 -187
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/index.tsx +0 -55
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.tsx +0 -221
- package/src/components/order-view/order-actions/actions/force-debrief/styles.tsx +0 -51
- package/src/components/order-view/order-actions/actions/hold-order/HoldOrderModal.tsx +0 -178
- package/src/components/order-view/order-actions/actions/log-feedback/FeedbackItem.tsx +0 -33
- package/src/components/order-view/order-actions/actions/log-feedback/LogFeedback.tsx +0 -84
- package/src/components/order-view/order-actions/actions/modalstyle.tsx +0 -407
- package/src/components/order-view/order-actions/actions/order-lock/index.tsx +0 -93
- package/src/components/order-view/order-actions/actions/release-order/ReleaseOrder.tsx +0 -107
- package/src/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.tsx +0 -96
- package/src/components/order-view/order-actions/actions/send-email/SendEmailModal.tsx +0 -140
- package/src/components/order-view/order-actions/actions/send-sms/SendSmsModal.tsx +0 -192
- package/src/components/order-view/order-actions/actions/split-order/SplitOrderTable.tsx +0 -124
- package/src/components/order-view/order-actions/actions/split-order/index.tsx +0 -117
- package/src/components/order-view/order-actions/actions/uncancel-order/UncancelOrder.tsx +0 -256
- package/src/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.tsx +0 -352
- package/src/components/order-view/order-actions/actions/unhold-order/UnholdOrder.tsx +0 -85
- package/src/components/order-view/order-actions/actions/what3words/What3WordsModal.tsx.tsx +0 -306
- package/src/components/order-view/order-actions/index.tsx +0 -331
- package/src/components/order-view/order-actions/store.ts +0 -280
- package/src/components/order-view/order-actions/types.ts +0 -78
- package/src/components/order-view/order-actions/utils.ts +0 -65
- package/src/components/order-view/order-details/collapsed-content/index.tsx +0 -64
- package/src/components/order-view/order-details/common/Header.tsx +0 -33
- package/src/components/order-view/order-details/expanded-content/customer-section/RecipientName.tsx +0 -72
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/CallCustomer.tsx +0 -19
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactEmail.tsx +0 -71
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.tsx +0 -182
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.tsx +0 -185
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.tsx +0 -174
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/index.tsx +0 -34
- package/src/components/order-view/order-details/expanded-content/customer-section/index.tsx +0 -35
- package/src/components/order-view/order-details/expanded-content/customer-section/location-info/Address.tsx +0 -66
- package/src/components/order-view/order-details/expanded-content/customer-section/location-info/Latitude.tsx +0 -62
- package/src/components/order-view/order-details/expanded-content/customer-section/location-info/Longitude.tsx +0 -63
- package/src/components/order-view/order-details/expanded-content/customer-section/location-info/Postcode.tsx +0 -201
- package/src/components/order-view/order-details/expanded-content/customer-section/location-info/What3words.tsx +0 -131
- package/src/components/order-view/order-details/expanded-content/customer-section/location-info/index.tsx +0 -43
- package/src/components/order-view/order-details/expanded-content/footer/AllowTracking.tsx +0 -48
- package/src/components/order-view/order-details/expanded-content/footer/index.tsx +0 -251
- package/src/components/order-view/order-details/expanded-content/index.tsx +0 -122
- package/src/components/order-view/order-details/expanded-content/instruction-section/DeliveryInstructions.tsx +0 -42
- package/src/components/order-view/order-details/expanded-content/instruction-section/OrderStatusNote.tsx +0 -42
- package/src/components/order-view/order-details/expanded-content/instruction-section/OtherInstructions.tsx +0 -42
- package/src/components/order-view/order-details/expanded-content/instruction-section/index.tsx +0 -36
- package/src/components/order-view/order-details/expanded-content/orders-section/Carrier.tsx +0 -93
- package/src/components/order-view/order-details/expanded-content/orders-section/ConsignmentNumber.tsx +0 -44
- package/src/components/order-view/order-details/expanded-content/orders-section/DeliveryDate.tsx +0 -123
- package/src/components/order-view/order-details/expanded-content/orders-section/Depot.tsx +0 -56
- package/src/components/order-view/order-details/expanded-content/orders-section/Droptime.tsx +0 -52
- package/src/components/order-view/order-details/expanded-content/orders-section/OrderNumber.tsx +0 -53
- package/src/components/order-view/order-details/expanded-content/orders-section/RecipientReference.tsx +0 -53
- package/src/components/order-view/order-details/expanded-content/orders-section/ScheduleAfter.tsx +0 -70
- package/src/components/order-view/order-details/expanded-content/orders-section/VehicleType.tsx +0 -43
- package/src/components/order-view/order-details/expanded-content/orders-section/index.tsx +0 -62
- package/src/components/order-view/order-details/expanded-content/services-section/AssemblyType.tsx +0 -60
- package/src/components/order-view/order-details/expanded-content/services-section/DeliveryPoint.tsx +0 -64
- package/src/components/order-view/order-details/expanded-content/services-section/OrderServices.tsx +0 -79
- package/src/components/order-view/order-details/expanded-content/services-section/ServiceLevel.tsx +0 -72
- package/src/components/order-view/order-details/expanded-content/services-section/ServiceType.tsx +0 -58
- package/src/components/order-view/order-details/expanded-content/services-section/TimedService.tsx +0 -88
- package/src/components/order-view/order-details/expanded-content/services-section/index.tsx +0 -76
- package/src/components/order-view/order-details/helper.ts +0 -132
- package/src/components/order-view/order-details/index.tsx +0 -55
- package/src/components/order-view/order-resources/collapsed-content/index.tsx +0 -14
- package/src/components/order-view/order-resources/columns/Category.tsx +0 -17
- package/src/components/order-view/order-resources/columns/Date.tsx +0 -18
- package/src/components/order-view/order-resources/columns/Reference.tsx +0 -17
- package/src/components/order-view/order-resources/columns/Type.tsx +0 -17
- package/src/components/order-view/order-resources/columns/actions/index.tsx +0 -140
- package/src/components/order-view/order-resources/expanded-content/index.tsx +0 -28
- package/src/components/order-view/order-resources/helper.ts +0 -34
- package/src/components/order-view/products-info/collapsed-content/index.tsx +0 -66
- package/src/components/order-view/products-info/expanded-content/index.tsx +0 -151
- package/src/components/order-view/products-info/index.tsx +0 -140
- package/src/components/order-view/return-client-products/ProductTable.tsx +0 -29
- package/src/components/order-view/return-client-products/product-table/ReturnProductTable.tsx +0 -370
- package/src/components/order-view/store.ts +0 -736
- package/src/components/order-view/system-event-logs/collapsed-content/index.tsx +0 -16
- package/src/components/order-view/system-event-logs/columns/Code.tsx +0 -17
- package/src/components/order-view/system-event-logs/columns/Date.tsx +0 -20
- package/src/components/order-view/system-event-logs/columns/Event.tsx +0 -26
- package/src/components/order-view/system-event-logs/columns/Note.tsx +0 -24
- package/src/components/order-view/system-event-logs/columns/index.tsx +0 -5
- package/src/components/order-view/system-event-logs/expanded-content/index.tsx +0 -53
- package/src/components/order-view/system-event-logs/helper.ts +0 -29
- package/src/components/order-view/types.ts +0 -372
- package/src/components/order-view/utils.ts +0 -342
- package/src/components/order-view/view-reminder/AssigneeDropdown.tsx +0 -263
- package/src/components/order-view/view-reminder/ViewReminder.tsx +0 -461
- package/src/components/order-view/view-reminder/reminder-styles.tsx +0 -179
- package/src/components/store.ts +0 -333
- package/src/components/types.ts +0 -234
- package/src/components/utils.ts +0 -123
- package/src/index.tsx +0 -170
- package/src/setupTests.ts +0 -1
- /package/{src/assets/icons/index.tsx → dist/types/assets/icons/index.d.ts} +0 -0
- /package/dist/{common → types/common}/style.d.ts +0 -0
- /package/{src/components/order-view/order-resources/columns/index.tsx → dist/types/components/order-view/order-resources/columns/index.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dms-client-return.cjs.production.min.js","sources":["../src/components/order-daily-overview/header-filters/Styledfilters.tsx","../src/components/store.ts","../src/components/order-daily-overview/header-filters/filterStore.ts","../src/components/order-daily-overview/store/store.ts","../src/components/order-view/store.ts","../src/components/order-daily-overview/header-filters/SelectionFilter.tsx","../src/components/order-daily-overview/header-filters/HeaderFilter.tsx","../src/components/order-daily-overview/filters/FilterStyle.tsx","../src/components/order-daily-overview/return-order-table/return-orders-filters/RightFilters.tsx","../src/components/client-portal/DateFilterStore.ts","../src/components/client-portal/ReturnRTFilters.tsx","../src/components/order-daily-overview/return-order-table/return-orders-filters/ReturnFilter.tsx","../src/assets/icons/DownIcon.tsx","../src/assets/icons/PrinterIcon.tsx","../src/common/CaretDownFilledIcon.tsx","../src/common/SortIcon.tsx","../src/components/order-daily-overview/shared/utlis.ts","../src/assets/icons/RunsheetIcon.tsx","../src/assets/icons/LoadSheetIcon.tsx","../src/assets/icons/DeliveryNotes.tsx","../src/assets/icons/CustomerLabelIcon.tsx","../src/assets/icons/CollectionLabelIcon.tsx","../src/common/utils.ts","../src/components/order-daily-overview/common/fakedata.tsx","../src/components/order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn.tsx","../src/components/order-daily-overview/table/table-data/styles.ts","../src/components/order-daily-overview/return-order-table/return-orders-filters/returnstyles.ts","../src/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.tsx","../src/components/order-view/utils.ts","../src/components/order-view/modalsPopup/DefectsModal.tsx","../src/components/order-view/modalsPopup/CreateReturnModal.tsx","../src/components/order-view/modalsPopup/ModalManager.tsx","../src/components/order-daily-overview/table-view/PaginationStyle.tsx","../src/assets/icons/PrevIcon.tsx","../src/assets/icons/NextIcon.tsx","../src/components/order-daily-overview/table-view/Pagination.tsx","../src/components/order-daily-overview/return-order-table/ReturnTable.tsx","../src/components/order-daily-overview/shared/elements/PrintDropDown.tsx","../src/components/order-daily-overview/return-after-table/table/OrderTable.tsx","../src/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.ts","../src/components/order-daily-overview/return-after-table/table-filters/TableFilters.tsx","../src/assets/icons/FilterIcon.tsx","../src/assets/icons/DateIcon.tsx","../src/assets/icons/ClientIcon.tsx","../src/assets/icons/StatusIcon.tsx","../src/assets/icons/AssigneIcon.tsx","../src/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.tsx","../src/components/order-daily-overview/table-view/ReturnPagination.tsx","../src/components/order-daily-overview/return-after-table/ReturnAfterTable.tsx","../src/components/order-view/order-details/common/Header.tsx","../src/assets/icons/SearchIcon.tsx","../src/assets/icons/CopyIcon.tsx","../src/assets/icons/What3WordsIcon.tsx","../src/assets/icons/FlexCallIcon.tsx","../src/assets/icons/SpokePhoneIcon.tsx","../src/common/copy/CopyText.tsx","../src/common/hooks/useCopyToClipboard.ts","../src/components/order-view/order-details/expanded-content/customer-section/RecipientName.tsx","../src/components/order-view/order-details/expanded-content/customer-section/location-info/Address.tsx","../src/components/order-view/order-details/expanded-content/customer-section/location-info/Postcode.tsx","../src/components/order-view/order-details/expanded-content/customer-section/location-info/Latitude.tsx","../src/components/order-view/order-details/expanded-content/customer-section/location-info/Longitude.tsx","../src/components/order-view/order-details/expanded-content/customer-section/location-info/What3words.tsx","../src/components/order-view/order-details/expanded-content/customer-section/location-info/index.tsx","../src/components/order-view/order-details/expanded-content/customer-section/contact-info/CallCustomer.tsx","../src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.tsx","../src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.tsx","../src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.tsx","../src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactEmail.tsx","../src/components/order-view/order-details/expanded-content/customer-section/contact-info/index.tsx","../src/components/order-view/order-details/expanded-content/customer-section/index.tsx","../src/components/order-view/order-details/expanded-content/orders-section/ConsignmentNumber.tsx","../src/components/order-view/order-details/expanded-content/orders-section/RecipientReference.tsx","../src/components/order-view/order-details/expanded-content/orders-section/Depot.tsx","../src/components/order-view/order-details/expanded-content/orders-section/Droptime.tsx","../src/components/order-view/order-details/expanded-content/orders-section/DeliveryDate.tsx","../src/components/order-view/order-details/expanded-content/orders-section/Carrier.tsx","../src/components/order-view/order-details/expanded-content/orders-section/OrderNumber.tsx","../src/components/order-view/order-details/expanded-content/orders-section/ScheduleAfter.tsx","../src/components/order-view/order-details/helper.ts","../src/components/order-view/order-details/expanded-content/orders-section/VehicleType.tsx","../src/components/order-view/order-details/expanded-content/orders-section/index.tsx","../src/components/order-view/order-details/expanded-content/instruction-section/OrderStatusNote.tsx","../src/components/order-view/order-details/expanded-content/instruction-section/DeliveryInstructions.tsx","../src/components/order-view/order-details/expanded-content/instruction-section/OtherInstructions.tsx","../src/components/order-view/order-details/expanded-content/instruction-section/index.tsx","../src/components/order-view/order-details/expanded-content/services-section/TimedService.tsx","../src/components/order-view/order-details/expanded-content/services-section/ServiceType.tsx","../src/components/order-view/order-details/expanded-content/services-section/DeliveryPoint.tsx","../src/components/order-view/order-details/expanded-content/services-section/ServiceLevel.tsx","../src/components/order-view/order-details/expanded-content/services-section/AssemblyType.tsx","../src/common/services-slider/helper.ts","../src/common/services-slider/ServiceSlider.tsx","../src/components/order-view/order-details/expanded-content/services-section/OrderServices.tsx","../src/components/order-view/order-details/expanded-content/services-section/index.tsx","../src/components/order-view/order-details/expanded-content/footer/AllowTracking.tsx","../src/components/order-view/order-details/expanded-content/footer/index.tsx","../src/components/order-view/northern-southern-info/CustomInput.tsx","../src/components/order-view/northern-southern-info/index.tsx","../src/components/order-view/order-details/expanded-content/index.tsx","../src/components/order-view/order-details/index.tsx","../src/components/order-view/notes/NoteType.tsx","../src/components/order-view/notes/AddNote.tsx","../src/components/order-view/notes/logs/fakeData.ts","../src/components/order-view/generic-table/AuditLogs.tsx","../src/components/order-view/notes/logs/index.tsx","../src/components/order-view/notes/index.tsx","../src/components/order-view/system-event-logs/collapsed-content/index.tsx","../src/assets/icons/ChevronUp.tsx","../src/common/expand-collapse/index.tsx","../src/common/scrollbar/index.tsx","../src/components/order-view/DynamicTable.tsx","../src/components/order-view/system-event-logs/columns/Event.tsx","../src/components/order-view/system-event-logs/columns/Date.tsx","../src/components/order-view/system-event-logs/columns/Code.tsx","../src/components/order-view/system-event-logs/columns/Note.tsx","../src/components/order-view/system-event-logs/helper.ts","../src/components/order-view/system-event-logs/expanded-content/index.tsx","../src/components/order-view/helper.ts","../src/assets/icons/RoutedIcon.tsx","../src/assets/icons/SuccessIcon.tsx","../src/assets/icons/DeliveredIcon.tsx","../src/assets/icons/ConfirmedIcon.tsx","../src/assets/icons/Divider.tsx","../src/components/order-view/general-information/Status.tsx","../src/components/order-view/general-information/index.tsx","../src/assets/icons/ActionIcon.tsx","../src/common/modals/order-action-modal/BackgroundModal.tsx","../src/common/modals/order-action-modal/header/AdditionalInformation.tsx","../src/common/modals/order-action-modal/header/OrderActionHeader.tsx","../src/common/modals/order-action-modal/footer/OrderActionFooter.tsx","../src/common/modals/order-action-modal/OrderActionModal.tsx","../src/components/order-view/order-actions/actions/charge-log/index.tsx","../src/components/order-view/return-client-products/product-table/ReturnProductTable.tsx","../src/components/order-view/return-client-products/ProductTable.tsx","../src/components/order-view/notes/order-dropdown/NewReturnDropdown.tsx","../src/components/order-view/products-info/expanded-content/index.tsx","../src/components/order-view/products-info/collapsed-content/index.tsx","../src/components/order-view/products-info/index.tsx","../src/components/order-view/order-actions/Dropdown.tsx","../src/components/order-view/order-actions/store.ts","../src/components/order-view/order-actions/actions/add-resources/DocumentTypeDropdown.tsx","../src/components/order-view/order-actions/actions/add-resources/CategoryDropdown.tsx","../src/components/order-view/order-actions/actions/add-resources/Visibility.tsx","../src/assets/icons/UploadIcon.tsx","../src/components/order-view/order-actions/actions/add-resources/DocFileUpload.tsx","../src/components/order-view/order-actions/actions/add-resources/DeliveryDate.tsx","../src/components/order-view/order-actions/actions/add-resources/index.tsx","../src/components/order-view/order-actions/actions/confirm-order/tables/ReminderStyles.tsx","../src/components/order-view/order-actions/actions/split-order/SplitOrderTable.tsx","../src/components/order-view/order-actions/actions/split-order/index.tsx","../src/components/order-view/order-actions/actions/cancel-order/ReturnAction.tsx","../src/components/order-view/order-actions/actions/cancel-order/ReturnReason.tsx","../src/assets/icons/DeliverProductIcon.tsx","../src/assets/icons/ReturnProductIcon.tsx","../src/components/order-view/order-actions/actions/cancel-order/CancelOrderTable.tsx","../src/components/order-view/order-actions/actions/cancel-order/index.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/EmailAddress.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactPhone.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWork.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactMobile.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactTypeDropdown.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/ActionDropdown.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/DeliveryDate.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/TimedServiceDropdown.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/index.tsx","../src/components/order-view/order-actions/actions/confirm-order/tables/ProductTable.tsx","../src/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.tsx","../src/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/ConfirmationNotes.tsx","../src/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/DeliveryInstructions.tsx","../src/components/order-view/order-actions/actions/confirm-order/customer-info/ContactWith.tsx","../src/components/order-view/order-actions/actions/confirm-order/slot-and-instructions/index.tsx","../src/components/order-view/order-actions/actions/confirm-order/send-comms/SendComms.tsx","../src/components/order-view/order-actions/actions/confirm-order/index.tsx","../src/components/order-view/order-actions/actions/modalstyle.tsx","../src/components/order-view/order-actions/actions/send-sms/SendSmsModal.tsx","../src/components/order-view/order-actions/actions/send-email/SendEmailModal.tsx","../src/components/order-view/order-actions/actions/change-customer-account/ChangeCustomerAccModal.tsx","../src/components/order-view/order-actions/actions/hold-order/HoldOrderModal.tsx","../src/components/order-view/order-actions/actions/unhold-order/UnholdOrder.tsx","../src/components/order-view/view-reminder/AssigneeDropdown.tsx","../src/components/order-view/view-reminder/reminder-styles.tsx","../src/components/order-view/order-actions/utils.ts","../src/components/order-view/flags-action-modal/StatusIndicator.tsx","../src/components/order-view/view-reminder/ViewReminder.tsx","../src/components/order-view/flags-action-modal/Header.tsx","../src/components/order-view/flags-action-modal/TextSection.tsx","../src/components/order-view/flags-action-modal/Dropdowns.tsx","../src/components/order-view/flags-action-modal/Actions.tsx","../src/components/order-view/flags-action-modal/DetailSection.tsx","../src/components/order-view/flags-action-modal/index.tsx","../src/components/order-view/order-actions/actions/release-order/ReleaseOrder.tsx","../src/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.tsx","../src/components/order-view/order-actions/actions/uncancel-order/UncancelOrderTable.tsx","../src/components/order-view/order-actions/actions/uncancel-order/UncancelOrder.tsx","../src/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.tsx","../src/components/order-view/order-actions/actions/create-task-reminder/SharedComponents.tsx","../src/assets/icons/RadioButtonCheckIcon.tsx","../src/common/radio-group/RadioButton.tsx","../src/common/radio-group/RadioButtonGroup.tsx","../src/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.tsx","../src/components/order-view/order-actions/actions/create-task-reminder/index.tsx","../src/components/fakeData.ts","../src/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.tsx","../src/components/order-view/order-actions/actions/create-task-reminder/TaskModal.tsx","../src/components/order-view/order-actions/actions/force-debrief/styles.tsx","../src/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.tsx","../src/components/order-view/order-actions/actions/force-debrief/order-info/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/Selector.tsx","../src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.tsx","../src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.tsx","../src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.tsx","../src/components/order-view/order-actions/actions/force-debrief/escalation/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.tsx","../src/components/order-view/notification/FlagTemplate.tsx","../src/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.tsx","../src/components/order-view/order-actions/actions/force-debrief/notifications/index.tsx","../src/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.tsx","../src/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.tsx","../src/common/custom-input/CustomInput.tsx","../src/components/order-view/order-actions/actions/what3words/What3WordsModal.tsx.tsx","../src/components/order-view/order-actions/index.tsx","../src/components/order-view/details-filters/right-side-filters/Details.tsx","../src/components/order-view/fakedata.ts","../src/assets/icons/ArrowDownIcon.tsx","../src/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.tsx","../src/components/order-view/general-information/dropdowns/Print.tsx","../src/components/order-view/details-filters/left-side-filters/dropdowns/MenuDropDown.tsx","../src/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.tsx","../src/components/order-view/details-filters/left-side-filters/ActionsMenu.tsx","../src/components/order-view/details-filters/DetailsFilters.tsx","../src/components/order-view/notification/OrderTemplate.tsx","../src/components/order-view/notification/ReminderTemplate.tsx","../src/components/order-view/notification/Tabs.tsx","../src/assets/icons/NotifyFlag.tsx","../src/components/order-view/notification/index.tsx","../src/components/order-view/order-resources/collapsed-content/index.tsx","../src/components/order-view/order-resources/columns/Category.tsx","../src/components/order-view/order-resources/columns/Date.tsx","../src/components/order-view/order-resources/columns/Reference.tsx","../src/components/order-view/order-resources/columns/Type.tsx","../src/assets/icons/DownloadIcon.tsx","../src/components/order-view/order-resources/columns/actions/index.tsx","../src/components/order-view/order-resources/helper.ts","../src/components/order-view/order-resources/expanded-content/index.tsx","../src/components/order-view/index.tsx","../src/components/order-daily-overview/filters/BulkFilterStyle.tsx","../src/components/order-daily-overview/header-filters/overViewFilter.ts","../src/components/order-daily-overview/header/route-header/search/SearchType.tsx","../src/components/order-daily-overview/filters/BulkFilter.tsx","../src/components/order-daily-overview/filters/Filters.tsx","../src/components/order-daily-overview/table/ReturnTable.tsx","../src/components/order-daily-overview/index.tsx","../src/OrderViewQueryHandler.tsx","../src/components/client-portal/OutstandingTable.tsx","../src/components/client-portal/return-confirm/ReturnConfirmedTable.tsx","../src/components/client-portal/return-confirm/ConfirmedMain.tsx","../src/components/order-daily-overview/header/route-header/RouterHeaderStyle.tsx","../src/components/order-daily-overview/header/route-header/title/HeaderTitle.tsx","../src/components/order-daily-overview/header/route-header/breadCrumb/BreadCrumb.tsx","../src/components/utils.ts","../src/components/client-portal/ReturnSearchBar.tsx","../src/components/client-portal/ReturnAfterSearchBar.tsx","../src/components/order-daily-overview/header/route-header/ClientRouterHeader.tsx","../src/components/client-portal/ReturnOverview.tsx","../src/components/order-daily-overview/header/route-header/RouterHeader.tsx","../src/index.tsx"],"sourcesContent":["// import { Button } from '@bjsdistribution/dms-component-library';\nimport { Select } from 'antd';\nimport styled from 'styled-components';\n\nexport const HeaderWrapper = styled.div`\n display: flex;\n padding: 20px;\n gap: 10px;\n border-radius: 0px 0px 30px 30px;\n background: #313130;\n height: 151px;\n background: url(./assets/bgBlack.png) no-repeat;\n background-size: cover;\n background-color: #000000d9;\n`;\n\nexport const StyledFlex = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n`;\n\nexport const CoverPage = styled.div`\n position: relative;\n border-radius: 16px;\n border: 1px solid #e3e3e3;\n background: #fff;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n padding: 20px 20px 20px 20px;\n top: -60px;\n`;\nexport const StatusPanel = styled.div`\n border-radius: 40px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n background: linear-gradient(180deg, #fff 0%, #f9fcff 100%);\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n display: flex;\n padding: 10px 15px;\n justify-content: space-between;\n align-items: center;\n width: 98%;\n margin: 0 auto;\n align-items: center;\n margin-top: -71px;\n margin-bottom: 3px;\n\n h2 {\n color: #3a3630;\n font-size: 20px;\n font-style: normal;\n font-weight: 900;\n line-height: 32px;\n text-transform: uppercase;\n margin: 0;\n padding: 0;\n }\n ul {\n border-radius: 15px;\n border: 1px solid #d0d5dd;\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n background: #f7f7f7;\n\n li {\n color: #6a7378;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n border-right: 1px solid #d0d5dd;\n display: flex;\n gap: 8px;\n align-items: center;\n cursor: pointer;\n\n &:last-child {\n border: none;\n }\n }\n }\n`;\n\nexport const Wrapper = styled.div`\n display: flex;\n padding: 15px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n`;\n\nexport const StyledAntSelect = styled(Select)`\n .ant-select-selector {\n /* width: 22vw; */\n border-radius: 22px;\n }\n`;\n\nexport const Label = styled.div`\n color: #8e8a85;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nexport const FilterRow = styled.div`\n display: flex;\n align-items: center;\n gap: 20px;\n align-self: stretch;\n justify-content: space-between;\n`;\n\nexport const FilterColumn = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 6px;\n align-self: stretch;\n margin: 10px;\n`;\n\nexport const RightColumn = styled.div`\n flex-direction: row;\n display: flex;\n gap: 15px;\n`;\n\nexport const LeftColumn = styled.div`\n flex-direction: row;\n display: flex;\n`;\n\nexport const DatePickerWrap = styled.div`\n display: flex;\n padding-right: 10px;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n border-radius: 20px;\n border: 1px solid #e0e2e7;\n background: var(--Neutral-White, #fff);\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n min-width: 12vw;\n\n input[type='text'] {\n border-radius: 20px;\n background: var(--Flowkit-White, #fff);\n border: none;\n color: #6a7378;\n font-size: 13px;\n font-weight: 400;\n line-height: 18px;\n padding: 8px 0;\n padding-left: 10px;\n &:focus-visible {\n outline: none;\n }\n }\n .react-datepicker-wrapper {\n background-color: white;\n border-radius: 66px;\n }\n\n .ant-picker-outlined {\n border-style: none !important;\n }\n .ant-btn {\n background-color: #3348ff !important;\n }\n`;\n\nexport const RangeSelect = styled.div`\n display: flex;\n padding: 8px 8px 8px 10px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n border-right: 1px solid #e0e2e7;\n background: #f0f2f2;\n border-radius: 20px 0 0 20px;\n font-size: 14px;\n white-space: nowrap;\n color: #8e8a85;\n`;\n\nexport const ApplyButton = styled.button`\n border-radius: 15px;\n display: flex;\n padding: 7px 12px;\n justify-content: center;\n align-items: center;\n font-size: 14px;\n font-family: 'Lato', sans-serif;\n background: transparent;\n color: #3a3620;\n border: 1px solid #3a3630;\n cursor: pointer;\n\n &:not(:disabled):hover {\n background: #feba30;\n }\n\n &:disabled {\n background: #ccc;\n cursor: not-allowed;\n opacity: 0.6;\n }\n`;\n","import { atom, useAtom } from 'jotai';\nimport {\n AssignUpdatePayload,\n CreateReturnPayload,\n SelectDateType,\n} from './types';\nimport dayjs from 'dayjs';\n\nexport const filtersInitialValue = {\n date: {\n startDate: undefined,\n endDate: undefined,\n },\n};\n\nexport const CreateReturnInitial = {\n customer_id: 0,\n account_number: '',\n return_location_token: '',\n products: [],\n return_action: [],\n};\n\nexport const AssignUpdateInitial = {\n return_order_id: 0,\n bjs_delivery: false,\n};\n\nexport const triggerApiCallAtom = atom(false);\n\nconst staticData = atom<any>({});\nconst filterAtom = atom<SelectDateType>(filtersInitialValue);\n\nconst rowCountDeliveredAtom = atom<number>(5);\n\nconst rowCountCollectedAtom = atom<number>(5);\n\nconst reminderTableData = atom<any[]>([]);\n\nconst inQueueDataAtom = atom<any>({});\n\nconst customerData = atom<any>([]);\n\nconst flatCustomerData = atom<any>([]);\n\nconst actionTypeData = atom<any>([]);\n\nconst locationData = atom<any>([]);\n\nconst createReturnPayload = atom<CreateReturnPayload>(CreateReturnInitial);\n\nconst newPayload = atom<any>([]);\n\nconst grpPayload = atom<any>([]);\n\nconst statusOfOrder = atom<any>([]);\n\nconst selectedLocationConfirm = atom<any[]>([]);\n\nconst selectAll = atom<boolean>(false);\n\nconst postLoading = atom<boolean>(false);\n\nconst final = atom<any[]>([]);\n\nconst clearState = atom<boolean>(false);\n\nconst assignData = atom<any[]>([]);\n\nconst visibilityData = atom<any[]>([]);\n\nconst assignPayload = atom<AssignUpdatePayload>(AssignUpdateInitial);\n\nconst callAPIAgain = atom<boolean>(true);\n\nconst actionTypeOptions = atom<any[]>([]);\n\nconst locationOptions = atom<any[]>([]);\n\nconst selectedProductsMove = atom<any>([]);\n\nconst newReturnOrderData = atom<any>([]);\n\nconst subContracterData = atom<any>([]);\n\nexport function useSubContracterData() {\n return useAtom(subContracterData);\n}\n\nfunction useReminderData() {\n return useAtom(reminderTableData);\n}\n\nfunction useRowDeliveredCount() {\n return useAtom(rowCountDeliveredAtom);\n}\n\nfunction useRowCollectedCount() {\n return useAtom(rowCountCollectedAtom);\n}\n\nfunction useFilter() {\n return useAtom(filterAtom);\n}\nfunction useStaticData() {\n return useAtom(staticData);\n}\nfunction useInQueueData() {\n return useAtom(inQueueDataAtom);\n}\n\nconst emailInvoiceData = atom<any>({});\n\nfunction useEmailInvoice() {\n return useAtom(emailInvoiceData);\n}\n\nconst selectedOrderlList = atom<any[]>([]);\n\nfunction useSelectedOrders() {\n return useAtom(selectedOrderlList);\n}\n\nconst selectedCPOrderlList = atom<any[]>([]);\n\nfunction useSelectedClientPortOrders() {\n return useAtom(selectedCPOrderlList);\n}\n\nconst selectedCPOrderAfterlList = atom<any[]>([]);\n\nfunction useSelectedClientAfterOrders() {\n return useAtom(selectedCPOrderAfterlList);\n}\n\n//start date and end date\nconst startCPDate = atom<dayjs.Dayjs | null>(null);\n\nfunction useStartDate() {\n return useAtom(startCPDate);\n}\n\nconst endCPDate = atom<dayjs.Dayjs | null>(null);\n\nfunction useEndDate() {\n return useAtom(endCPDate);\n}\n\n// Sticky menu state\nconst stickyStatus = atom<boolean>(false);\nexport const useStickyStatus = () => {\n return useAtom(stickyStatus);\n};\n\n//search for pending\n// Sticky menu state\nconst search = atom<any>('');\nexport const useSearchText = () => {\n return useAtom(search);\n};\n\nconst searchAfter = atom<any>('');\nexport const useSearchAfterText = () => {\n return useAtom(searchAfter);\n};\nconst isShow = atom<any>(null);\nexport function useIsShowNorthSouth() {\n return useAtom(isShow);\n}\nconst rclientReturnDataAtom = atom<any[]>([]);\nexport function useClientOutstandingReturnData() {\n return useAtom(rclientReturnDataAtom);\n}\n\nconst returnConfirmedOrderAtom = atom<any[]>([]);\n\nexport function useReturnConfirmedOrderData() {\n return useAtom(returnConfirmedOrderAtom);\n}\nconst statsCPCount = atom<any>(null);\n\nexport function useStatsCPCount() {\n return useAtom(statsCPCount);\n}\n\nfunction useCustomerData() {\n return useAtom(customerData);\n}\n\nfunction useFlatCustomerData() {\n return useAtom(flatCustomerData);\n}\n\nfunction useActionType() {\n return useAtom(actionTypeData);\n}\n\nfunction useLocationData() {\n return useAtom(locationData);\n}\n\nfunction useReturnPayload() {\n return useAtom(createReturnPayload);\n}\n\nfunction useNewReturnPayload() {\n return useAtom(newPayload);\n}\n\nfunction useGroupedPayload() {\n return useAtom(grpPayload);\n}\n\nfunction useStatusOrderData() {\n return useAtom(statusOfOrder);\n}\n\nfunction useSelectedConfirmLoc() {\n return useAtom(selectedLocationConfirm);\n}\n\nfunction useSelectAll() {\n return useAtom(selectAll);\n}\n\nfunction usePostLoading() {\n return useAtom(postLoading);\n}\n\nfunction useFinalPayload() {\n return useAtom(final);\n}\n\nfunction useClearState() {\n return useAtom(clearState);\n}\n\nfunction useAssignData() {\n return useAtom(assignData);\n}\n\nfunction useVisibilityData() {\n return useAtom(visibilityData);\n}\n\nfunction useAssignPayload() {\n return useAtom(assignPayload);\n}\n\nfunction useCallApiAgain() {\n return useAtom(callAPIAgain);\n}\n\nfunction useActionTypeOptions() {\n return useAtom(actionTypeOptions);\n}\n\nfunction useLocationOptions() {\n return useAtom(locationOptions);\n}\nfunction useSelectedProducts() {\n return useAtom(selectedProductsMove);\n}\n\nconst selectedAssignee = atom<any>('');\n\nexport function useSelectedData() {\n return useAtom(selectedAssignee);\n}\n\nexport function useNewReturnOrderData() {\n return useAtom(newReturnOrderData);\n}\n//call\nconst isClientPortalAtom = atom<boolean | undefined>(undefined);\nfunction useClientPortal() {\n return useAtom(isClientPortalAtom);\n}\n\nconst isClientLoading = atom<boolean>(true);\nfunction useClientLoading() {\n return useAtom(isClientLoading);\n}\n\nconst activeCardIdAtom = atom<number>(1);\nexport const useActiveCardId = () => {\n return useAtom(activeCardIdAtom);\n};\n\nconst sendEmailNotificationData = atom<boolean>(true);\nfunction useSendEmailNotification() {\n return useAtom(sendEmailNotificationData);\n}\n\nexport {\n useAtom,\n useFilter,\n useStaticData,\n useRowCollectedCount,\n useRowDeliveredCount,\n useReminderData,\n useInQueueData,\n useEmailInvoice,\n // useSelectedEmail,\n useCustomerData,\n useActionType,\n useLocationData,\n useSelectedOrders,\n useReturnPayload,\n useNewReturnPayload,\n useGroupedPayload,\n useStatusOrderData,\n useSelectedConfirmLoc,\n useSelectAll,\n usePostLoading,\n useFinalPayload,\n useClearState,\n useAssignData,\n useAssignPayload,\n useCallApiAgain,\n useActionTypeOptions,\n useLocationOptions,\n useSelectedProducts,\n useVisibilityData,\n useClientPortal,\n useSelectedClientPortOrders,\n useStartDate,\n useEndDate,\n useSelectedClientAfterOrders,\n useClientLoading,\n useSendEmailNotification,\n useFlatCustomerData,\n};\n","import { atom, useAtom } from 'jotai';\n// import { formatDate } from '../shared/utlis';\nimport { format } from 'date-fns';\n\nconst date = atom(new Date());\nexport const usedate = () => {\n return useAtom(date);\n};\n\ninterface Filter {\n field: string;\n op: string;\n value: any;\n}\n\ninterface Pagination {\n page: number;\n per_page: number;\n}\n\ninterface FilterState {\n 'x-filters': Filter[];\n 'x-pagination': Pagination;\n}\n// let todayDate = new Date();\nconst initialState: FilterState = {\n 'x-filters': [{ field: 'isdeleted', op: '=', value: 0 }],\n 'x-pagination': { page: 1, per_page: 50 },\n};\n\nconst filterReducer = (state: FilterState, action: any): FilterState => {\n switch (action.type) {\n case 'SET_DATE_FILTER':\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(\n f => f.field !== 'action_date' && f.field !== 'status'\n ),\n {\n field: 'action_date',\n op: '>=',\n value: `${format(\n new Date(action.payload),\n 'yyyy-MM-dd'\n )}T00:00:00+00:00`,\n },\n {\n field: 'action_date',\n op: '<=',\n value: `${format(\n new Date(action.payload),\n 'yyyy-MM-dd'\n )}T23:59:59+00:00`,\n },\n { field: 'status', op: 'count', value: '' },\n ],\n };\n\n case 'SET_CLIENT_FILTER':\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'customer_id'),\n {\n field: 'customer_id',\n op: Array?.isArray(action?.payload) ? 'in' : '=',\n value: action.payload,\n },\n ],\n };\n\n case 'SET_ACTIONS_FILTER':\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(\n f => f.field !== 'product_return_action_id'\n ),\n {\n field: 'product_return_action_id',\n op: '=',\n value: action.payload,\n },\n ],\n };\n\n case 'SET_LOCATION_FILTER':\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'return_location'),\n {\n field: 'return_location',\n op: 'in',\n value: action.payload,\n },\n ],\n };\n\n case 'CLEAR_CLIENT':\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(f => f.field !== 'customer_id'),\n };\n\n case 'CLEAR_ACTION':\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'product_return_action_id'\n ),\n };\n\n case 'CLEAR_LOC':\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'return_location'\n ),\n };\n case 'CLEAR_FILTERS':\n return {\n ...state,\n };\n\n case 'CLEAR_ALL_FILTER':\n return {\n ...state,\n };\n\n case 'SET_PAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n page: action.payload,\n },\n };\n\n case 'SET_PERPAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n per_page: action.payload,\n },\n };\n default:\n return state;\n }\n};\n\nconst filtersStateAtom = atom(initialState);\n\nexport const filtersReducerAtom = atom(\n get => get(filtersStateAtom),\n (get, set, action) =>\n set(filtersStateAtom, filterReducer(get(filtersStateAtom), action))\n);\n","import { atom, useAtom } from 'jotai';\n\nimport { PaginationData, TableColumn, TableRowType } from '../shared/interface';\n\nimport { ModalType } from '../shared/types';\nexport const visibleColumnsAtom = atom<string[]>([]);\nconst toggleColumnMenuAtom = atom<boolean>(false);\nexport const useToggleColumn = () => {\n return useAtom(toggleColumnMenuAtom);\n};\n\nexport const initialVisibleColumns = (tableData: TableColumn[]) => {\n return tableData.map(column => column.key);\n};\n\n// Dropdown\nconst PrintOptionTOggle = atom<number | null>(null);\nexport const usePrintOptionTOggle = () => {\n return useAtom(PrintOptionTOggle);\n};\n\nconst menuDropDown = atom<boolean>(false);\nexport const useMenuDropDown = () => {\n return useAtom(menuDropDown);\n};\n\n//route page\nconst modalTypeAtom = atom<ModalType>('tablegrid');\n\nexport function useModalType() {\n return useAtom(modalTypeAtom);\n}\n// Overview Table\nconst atomRoutesTable = atom<TableRowType[]>([]);\nexport const useRoutesTable = () => {\n return useAtom(atomRoutesTable);\n};\n//this\nconst loading = atom<boolean>(false);\nexport const useStatsLoading = () => {\n return useAtom(loading);\n};\n\n//order return page\nconst loadingState = atom<boolean>(false);\nexport const useLoading = () => {\n return useAtom(loadingState);\n};\n\nconst selectedAction = atom<string | null>(null);\nexport function useSelectedAction() {\n return useAtom(selectedAction);\n}\n\nconst selectedLocation = atom<any[] | null>(null);\nexport function useSelectedLocation() {\n return useAtom(selectedLocation);\n}\n\nconst selectedClient = atom<number | null>(null);\nexport function useSelectedClient() {\n return useAtom(selectedClient);\n}\n\nconst clientTableId = atom<number | null>(null);\nexport function useIdForTableName() {\n return useAtom(clientTableId);\n}\n\nconst clientTableName = atom<string | null>(null);\nexport function useTableName() {\n return useAtom(clientTableName);\n}\n\n// Paginations\n\nconst atomPaginationData = atom<PaginationData>({\n firstPage: 1,\n lastPage: 1,\n next_page: 1,\n page: 0,\n previous_page: 1,\n total: 0,\n totalPages: 0,\n});\n//client filter\nexport const UsePaginationData = () => {\n return useAtom(atomPaginationData);\n};\n\nconst atomItemsPerPage = atom<number>(50);\nexport const useItemsPerPage = () => {\n return useAtom(atomItemsPerPage);\n};\n\n//return after order\nexport const UsePaginationReturnData = () => {\n return useAtom(atomPaginationData);\n};\n\nconst atomItemsPerReturnPage = atom<number>(50);\nexport const useItemsPerReturnPage = () => {\n return useAtom(atomItemsPerReturnPage);\n};\n\n//stats data overview\nexport const UsePaginationOverviewData = () => {\n return useAtom(atomPaginationData);\n};\n\nconst atomItemsPerOverviewPage = atom<number>(50);\nexport const useItemsPerOverviewPage = () => {\n return useAtom(atomItemsPerOverviewPage);\n};\n\nconst countStatus = atom<any>([]);\nexport const useCountData = () => {\n return useAtom(countStatus);\n};\n","import { atom, useAtom } from 'jotai';\nimport { atomWithReducer } from 'jotai/utils';\nimport {\n CancelOrderProductsType,\n ChargesType,\n CreateProduct,\n OrderActionsType,\n OrdersType,\n UnRecieveOrderProduct,\n UpdateOrderProduct,\n} from './types';\nimport {\n ClientData,\n ClientType,\n} from '../order-daily-overview/common/interface';\n// OrderActionsType\nconst activeTabAtom = atom<string>('active');\nconst infoAtom = atom<boolean | undefined>(false);\nconst orderResources = atom<[]>([]);\nconst currentActionAtom = atom<OrderActionsType | undefined>(undefined);\nconst isOnHold = atom<Boolean>(false);\nconst date = atom(new Date());\n\nconst orderStaticDataAtom = atom<any>({});\n\ninterface OrderRecipient {\n recipient_name: string | null;\n postcode: string | null;\n return_action?: string[] | null;\n}\n\nconst customerInfoAtom = atom<OrderRecipient>({\n recipient_name: '',\n postcode: '',\n});\n\nexport const ordersInitialValue: OrdersType = {\n order_locked_time: null,\n depot_id: null,\n gsit_order_id: null,\n customer_id: null,\n trading_name: null,\n recipient_reference: null,\n order_locked: true,\n lock_notes: null,\n order_type_id: null,\n allow_live_tracking: null,\n weight: null,\n cube: null,\n rescheduled: null,\n zone_code: null,\n status: null,\n status_value: null,\n order_status_note: null,\n print_pod: null,\n order_number: null,\n consignment: null,\n action_date: null,\n other_instructions: null,\n schedule_after: null,\n vehicle_type: null,\n order_locked_by: null,\n delivery_instructions: null,\n drop_time: null,\n created_by: null,\n created_at: null,\n recipient_name: '',\n postcode: '',\n order_recipient: {\n id: null,\n order_id: null,\n recipient_name: null,\n address: null,\n postcode: null,\n postcode_district: null,\n postcode_short: null,\n latitude: null,\n longitude: null,\n what_3words_address: null,\n contact_home: null,\n contact_work: null,\n contact_mobile: null,\n contact_email: null,\n is_comms_enabled: null,\n },\n order_services_detail: {\n order_id: null,\n timed_service_id: null,\n order_delivery_point_id: null,\n order_service_level_id: null,\n heavy_order: null,\n heavy_item: null,\n bulky_order: null,\n bulky_item: null,\n id: null,\n },\n order_services: [\n {\n order_id: null,\n order_service_list_id: null,\n service_time: null,\n is_refused: null,\n service_note: null,\n id: null,\n service_category_id: 0,\n },\n ],\n order_routes: null,\n order_eta_updates: [],\n order_delivery_declined_dates: [],\n order_communications: [],\n id: null,\n name: '',\n carrier_id: null,\n order_type: {\n type: null,\n },\n assemble: false,\n disassemble: false,\n unpack_items: false,\n take_packaging_away: false,\n collect_disposal: false,\n assembly_type: null,\n route_id: null,\n hold_untill: null,\n hold_reason: null,\n\n order_on_hold: {\n order_id: null,\n hold_indefinitely: null,\n hold_until: null,\n reason_id: null,\n un_hold: null,\n },\n\n refused_service: [],\n refused_service_reason: '',\n invalid_order: null,\n owner_name: null,\n force_debrief_enabled: null,\n import_reference: null,\n labels: null,\n};\n\nexport const orderProductInitialvalue: CreateProduct = {\n code: '',\n description: '',\n sku: '',\n weight: 0,\n cube: 0,\n order_id: 0,\n order_product_type_id: 0,\n return_reason_id: 0,\n collection_reason_id: 0,\n product_return_action_id: 0,\n return_location: '',\n};\n\nexport const unrecieveOrderProducts: UnRecieveOrderProduct = {\n unrecieve_reason_id: 0,\n unrecieve_note: '',\n // id: 0\n};\n\nexport const updateOrderProducts: UpdateOrderProduct = {\n id: 0,\n order_id: 0,\n product_type_id: 0,\n product_return_action_id: 0,\n return_location: '',\n return_reason_id: 0,\n};\n\n//force debrief\nconst chargesIntialValue: ChargesType = {\n base_charge_type: 1,\n base_charge: 0,\n weight: 0,\n drop_time: 0,\n timed_service: 0,\n wait_time: 0,\n extra_floor: 0,\n bulky_items: 0,\n re_label: 0,\n extra_cube: 0,\n additional_box: 0,\n additional_item: 0,\n weekend: 0,\n re_allocation: 0,\n pre_dated: 0,\n re_package: 0,\n disassemble: 0,\n qc: 0,\n collection_qc: 0,\n return_to_client: 0,\n roc: 0,\n unpack: 0,\n packaging_disposal: 0,\n assembly: 0,\n debrief_notes: '',\n recycle: 0,\n admin: 0,\n disposal: 0,\n disposal_recycling: 0,\n debrief_status: '',\n new_order_status: '',\n adhoc_charges: [],\n};\n\nexport const usedate = () => {\n return useAtom(date);\n};\nfunction useTabType() {\n return useAtom(activeTabAtom);\n}\nfunction useInfoType() {\n return useAtom(infoAtom);\n}\nfunction useOrderResources() {\n return useAtom(orderResources);\n}\nfunction useCurrentAction() {\n return useAtom(currentActionAtom);\n}\n\nfunction useOrderStaticData() {\n return useAtom(orderStaticDataAtom);\n}\n\nexport function useCustomerInfo() {\n return useAtom(customerInfoAtom);\n}\n\n// Define initial modal state\nexport const initialModalState = {\n openModalType: null,\n};\nfunction useIsOnHoldOrder() {\n return useAtom(isOnHold);\n}\n//value\nconst orderId = atom<any>(undefined);\nexport const useOrderId = () => {\n //dddddddddddd\n return useAtom(orderId);\n};\n\nconst escalationIds = atom<number[]>([]);\n\nfunction useEscalationIDs() {\n return useAtom(escalationIds);\n}\n\nconst bulkUpdateSelectedRow = atom<any[]>([]);\nexport const useBulkUpdateSelectedRow = () => {\n return useAtom(bulkUpdateSelectedRow);\n};\n\nexport const initialConfirmOrderErrValues = {\n homeContactError: '',\n workContactError: '',\n mobileError: '',\n emailError: '',\n};\n\nconst errorConfirmOrderAtom = atom(initialConfirmOrderErrValues);\n\nfunction useErrorConfirmOrder() {\n return useAtom(errorConfirmOrderAtom);\n}\n\nconst OrderDetailsConfirmOrder = atom<OrdersType>(ordersInitialValue);\nfunction useOrderDetailsConfirmOrder() {\n return useAtom(OrderDetailsConfirmOrder);\n}\n\nconst selectedAction = atom<string>('');\n\nexport function useSelectionAction() {\n return useAtom(selectedAction);\n}\n\n// REFUSED SERVICES STATE STARTS\n\nconst confirmedDate = atom<{\n previousDate: string | null;\n currentDate: string | null;\n}>({\n previousDate: null,\n currentDate: null,\n});\n\nexport function useNotificationConfirmedDate() {\n return useAtom(confirmedDate);\n}\n\nconst cancelOrderProducts = atom<CancelOrderProductsType[]>([]);\nexport function useCancelOrderProducts() {\n return useAtom(cancelOrderProducts);\n}\n\n// changes customer Account state\nconst customerData = atom<any[]>([]);\nexport const useCustomerData = () => {\n return useAtom(customerData);\n};\n\nconst orderAlertsData = atom<any>({});\nexport function useOrderAlertsData() {\n return useAtom(orderAlertsData);\n}\n\nconst customerList = atom<any>([]);\nexport function useOrderCustomersList() {\n return useAtom(customerList);\n}\n\nexport {\n useTabType,\n useInfoType,\n useOrderResources,\n useCurrentAction,\n useIsOnHoldOrder,\n useOrderStaticData,\n useEscalationIDs,\n useErrorConfirmOrder,\n useOrderDetailsConfirmOrder,\n};\n\n// Remainder count\nconst OrderDetails = atom<OrdersType>(ordersInitialValue);\nfunction useOrderDetails() {\n return useAtom(OrderDetails);\n}\n\nconst prevOrderDetails = atom<OrdersType>(ordersInitialValue);\nfunction usePrevOrderDetails() {\n return useAtom(prevOrderDetails);\n}\n\nconst customerDetails = atom<any>({});\nfunction useCustomerDetails() {\n return useAtom(customerDetails);\n}\n\nconst DepotDeatils = atom<any>(0);\nfunction useDepotDetails() {\n return useAtom(DepotDeatils);\n}\nconst productDetails = atom<any[]>([]);\nfunction useProductDetails() {\n return useAtom(productDetails);\n}\n\nconst fetchAgain = atom<boolean>(false);\nexport function usefetchAgain() {\n return useAtom(fetchAgain);\n}\n\nconst productDetailsCopy = atom<any>([]);\nexport function useProductDetailsCopy() {\n return useAtom(productDetailsCopy);\n}\n\nconst StatusDeatils = atom<any>(0);\nfunction useStatusDetails() {\n return useAtom(StatusDeatils);\n}\n\nconst depotOptions = atom<any>([]);\nfunction useDepotOptions() {\n return useAtom(depotOptions);\n}\n\nconst depotEscData = atom<any>([]);\nfunction useEscData() {\n return useAtom(depotEscData);\n}\nconst deleteProdId = atom<any[]>([]);\nfunction useDeleteProdsID() {\n return useAtom(deleteProdId);\n}\n\nconst createOrderProduct = atom<any[]>([]);\nfunction useCreateOrderProducts() {\n return useAtom(createOrderProduct);\n}\n\nconst unrevieveOrderProduct = atom<UnRecieveOrderProduct>(\n unrecieveOrderProducts\n);\nfunction useRecieveOrderProducts() {\n return useAtom(unrevieveOrderProduct);\n}\n\nconst updateOrderProduct = atom<UpdateOrderProduct>(updateOrderProducts);\nfunction useUpdateOrderProducts() {\n return useAtom(updateOrderProduct);\n}\nconst CallAPi = atom(false);\n\nexport function useCallAPi() {\n return useAtom(CallAPi);\n}\n// export const selectedProductIdAtom = atom<number | null>(null);\n\nexport const selectedProductActionTabKeyAtom = atom<string>(\n 'update_product_type_tab'\n);\nfunction useSelectedProductActionTabKey() {\n return useAtom(selectedProductActionTabKeyAtom);\n}\n\nexport const errorAtom = atom({\n homeContactError: '',\n workCOntanctError: '',\n mobileError: '',\n emailError: '',\n w3wError: '',\n postCodeError: '',\n});\n\nconst orderProductResources = atom<any>([]);\nfunction useOrderProductsResources() {\n return useAtom(orderProductResources);\n}\n\nconst orderProductToolbox = atom<any>([]);\nfunction useOrderProductsToolbox() {\n return useAtom(orderProductToolbox);\n}\n\nexport const initialBulkReasonValues = {\n collection_reason_id: 0,\n return_reason_id: 0,\n product_return_action_id: 0,\n return_location: '',\n};\n\nconst bulkReasonsAtom = atom<any>(initialBulkReasonValues);\nexport function useBulkReasons() {\n return useAtom(bulkReasonsAtom);\n}\n\nconst bulkUpdatePayloadAtom = atom<any>([]);\nexport function useBulkUpdatePayload() {\n return useAtom(bulkUpdatePayloadAtom);\n}\n\nconst singleProductTypeUpdateAtom = atom<any>({\n order_product_type_id: 0,\n order_product_type: '',\n});\nexport function useSingleProductTypeUpdate() {\n return useAtom(singleProductTypeUpdateAtom);\n}\n\nconst locationOptions = atom<any>([]);\nexport function useLocationOptions() {\n return useAtom(locationOptions);\n}\nconst orderProductSystemLogs = atom<any>([]);\nfunction useOrderProductSystemLogs() {\n return useAtom(orderProductSystemLogs);\n}\n\nconst eventNotesData = atom<any>([]);\nfunction useEventNotesData() {\n return useAtom(eventNotesData);\n}\n\nconst selectedProductIdAtom = atom<number | undefined>(undefined);\nfunction useSelectedProductId() {\n return useAtom(selectedProductIdAtom);\n}\nconst returnAfterOrderAtom = atom<any[]>([]);\n\nexport function useReturnAfterOrderData() {\n return useAtom(returnAfterOrderAtom);\n}\n\nconst clientDataAtom = atom<ClientData[]>([]);\nfunction useClientData() {\n return useAtom(clientDataAtom);\n}\n\nconst clientData = atom<ClientType[]>([]);\n\nexport function usegetClientData() {\n return useAtom(clientData);\n}\n\nconst internalSearch = atom<string>('');\n\nfunction useInternalSearchText() {\n return useAtom(internalSearch);\n}\n\nexport {\n useAtom,\n useOrderDetails,\n useCustomerDetails,\n useProductDetails,\n useDepotDetails,\n useStatusDetails,\n useDepotOptions,\n usePrevOrderDetails,\n useEscData,\n useDeleteProdsID,\n useCreateOrderProducts,\n useRecieveOrderProducts,\n useUpdateOrderProducts,\n useOrderProductsResources,\n useOrderProductsToolbox,\n useOrderProductSystemLogs,\n useEventNotesData,\n useSelectedProductId,\n useSelectedProductActionTabKey,\n useClientData,\n useInternalSearchText,\n};\n\nconst notes = atom<any>([]);\n\nexport function usegetNotes() {\n return useAtom(notes);\n}\n\nconst moduleIds = atom<{\n id?: string;\n parentId?: string;\n} | null>(null);\n\nexport function usemoduleIds() {\n return useAtom(moduleIds);\n}\n\nconst callAPi = atom(false);\n\nexport function useLogsCallAPi() {\n return useAtom(callAPi);\n}\n\nconst callOrderProductsApi = atom<boolean>(false);\n\nexport function usecallOrderProductsApi() {\n return useAtom(callOrderProductsApi);\n}\n\nconst selectedProductId = atom<any>([]);\n\nexport function useSelectUpdateOP() {\n return useAtom(selectedProductId);\n}\n\nconst gsitCUstomerId = atom<any>({});\n\nexport function useGsitCUstomerId() {\n return useAtom(gsitCUstomerId);\n}\n\nconst CUstomerId = atom<number | undefined>(undefined);\n\nexport function useCUstomerId() {\n return useAtom(CUstomerId);\n}\n\nconst RouteId = atom<any | null>(null);\n\nexport function useRouteId() {\n return useAtom(RouteId);\n}\n\nconst gsitOrderId = atom<number | undefined>(undefined);\n\nexport function useGsitOrderId() {\n return useAtom(gsitOrderId);\n}\n\nconst orderProductId = atom<number | undefined>(undefined);\n\nexport function useOrderProductId() {\n return useAtom(orderProductId);\n}\nconst returnDataAtom = atom<any[]>([]);\nexport function useReturnData() {\n return useAtom(returnDataAtom);\n}\nconst apiUpdateCalling = atom<boolean>(false);\n\nexport function useUpdateApiCall() {\n return useAtom(apiUpdateCalling);\n}\n\nconst liveRecalling = atom<boolean>(false);\n\n//re api call of live status\nexport function useLiveRecalling() {\n return useAtom(liveRecalling);\n}\n\n//delete products\nconst onDeleteProduct = atom<boolean>(false);\n\nexport function useDeleteRecall() {\n return useAtom(onDeleteProduct);\n}\n\nexport const selectedTabKeyAtom = atom<string>('1');\nexport const letselectedProductIdAtom = atom<number | null>(null);\n\n// const BulkUPdateDisabledState = atom<boolean>(false);\n// export const useBulkUPdateDisabledState = () => {\n// return useAtom(BulkUPdateDisabledState);\n// };\n\nconst auditLogLoadingState = atom<boolean>(true);\nexport function useAuditLogLoadingState() {\n return useAtom(auditLogLoadingState);\n}\n\nconst globalStateHitAuditLog = atom<boolean>(false);\nexport function useGlobalStateHitAuditLog() {\n return useAtom(globalStateHitAuditLog);\n}\n\nconst globalOrderGetApi = atom<boolean>(true);\n\nexport function useGlobalStateHitOrder() {\n return useAtom(globalOrderGetApi);\n}\n\n//force debrief states\nconst globalEscData = atom<any>([]);\nexport function useGlobalEscData() {\n return useAtom(globalEscData);\n}\n\nconst activeTab = atom<any>('success');\n\nexport function useActiveTab() {\n return useAtom(activeTab);\n}\n\nconst chargesStateAtom = atom<ChargesType>(chargesIntialValue);\n\nexport function useChargesState() {\n return useAtom(chargesStateAtom);\n}\n\nconst failureReasonAtom = atom<any>('');\nexport function useFailureReason() {\n return useAtom(failureReasonAtom);\n}\n\nconst escalationCategoryAtom = atom<any>('');\n\nexport function useEscalationCategory() {\n return useAtom(escalationCategoryAtom);\n}\n\nconst escalationLevelAtom = atom<any>('');\n\nexport function useEscalationLevel() {\n return useAtom(escalationLevelAtom);\n}\n\nconst escalationReasonAtom = atom<any>('');\n\nexport function useEscalationReason() {\n return useAtom(escalationReasonAtom);\n}\n\nconst newStatusAtom = atom<any>('');\nexport function useNewStatus() {\n return useAtom(newStatusAtom);\n}\n\nconst orderCancelReasonAtom = atom<any>('');\nexport function useOrderCancelReason() {\n return useAtom(orderCancelReasonAtom);\n}\n\nconst orderHoldReasonAtom = atom<any>('');\nexport function useOrderHoldReason() {\n return useAtom(orderHoldReasonAtom);\n}\n\nconst isFailureReasonChangedAtom = atom<boolean>(false);\nexport function useIsFailureReasonChanged() {\n return useAtom(isFailureReasonChangedAtom);\n}\n\n// Popup state Manage\nconst initialState = null;\n\nconst popupReducer = (state: any, action: any) => {\n if (action.type === 'create-return') {\n state = 'create-return';\n return { state };\n }\n if (action.type === 'bulkUpdate') {\n state = 'bulkUpdate';\n return { state };\n } else if (action.type === 'addProduct') {\n state = 'addProduct';\n return { state };\n } else if (action.type === 'split-order') {\n state = 'split-order';\n return { state };\n } else if (action.type === 'deleteProduct') {\n state = 'deleteProduct';\n return { state };\n } else if (action.type === 'defectsModal') {\n state = 'defectsModal';\n return { state };\n } else if (action.type === 'repackModal') {\n state = 'repackModal';\n return { state };\n } else if (action.type === 'qclog') {\n state = 'qclog';\n return { state };\n } else if (action.type === 'qclogtable') {\n state = 'qclogtable';\n return { state };\n } else if (action.type === 'repack') {\n state = 'repack';\n return { state };\n } else if (action.type === 'close') {\n state = null;\n return { state };\n } else {\n throw new Error('unknown action type');\n }\n};\nexport const countReducerAtom = atomWithReducer(initialState, popupReducer);\n","import React, { useEffect, useState } from 'react';\nimport {\n ApplyButton,\n FilterColumn,\n FilterRow,\n Label,\n LeftColumn,\n RightColumn,\n Wrapper,\n} from './Styledfilters';\nimport { atom, useAtom } from 'jotai';\nimport {\n useActionTypeOptions,\n useClearState,\n useClientLoading,\n useClientPortal,\n useCustomerData,\n useReturnPayload,\n useFlatCustomerData,\n} from '../../store';\nimport { filtersReducerAtom } from './filterStore';\nimport {\n useSelectedAction,\n useSelectedClient,\n useSelectedLocation,\n useLoading,\n} from '../store/store';\nimport styled from 'styled-components';\nimport { Select } from 'antd';\nimport { useLocationOptions } from '../../order-view/store';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../common/interface';\n\n\nexport const clickedState = atom<boolean>(false);\n\nfunction SelectionFilter() {\n const [customers] = useCustomerData();\n const [selectedFilterValue, setSelectedFilterValue] = useSelectedAction();\n const [, dispatch] = useAtom(filtersReducerAtom);\n const [\n selectedLocationValue,\n setSelectedLocationValue,\n ] = useSelectedLocation();\n const [selectedClient, setSelectedClient] = useSelectedClient();\n const [isButtonEnabled, setIsButtonEnabled] = useState(false);\n const [, setReturnPayload] = useReturnPayload();\n const [load] = useLoading();\n const [clearState, setClear] = useClearState();\n const [actionTypeOptions, setActionTypeOptions] = useActionTypeOptions();\n const [locationOptions, setLocationOptions] = useLocationOptions();\n const [searchParams] = useSearchParams();\n const navigate = useNavigate();\n const [clientPortal] = useClientPortal();\n const [clientLoading] = useClientLoading();\n\n //API for client data\n const { data: fetchedCustomerData, loading: loading, fetchData } = useAxios<\n ApiResponse\n >({\n endpoint: `/v1/return/product/customers/`,\n method: 'GET',\n //@ts-ignore\n pagination: { is_pagination: false },\n });\n\n const [flatCustomers, setFlatCustomers] = useFlatCustomerData();\n\n useEffect(() => {\n if (!clientPortal && !clientLoading) {\n if (!flatCustomers || flatCustomers.length === 0) {\n fetchData();\n }\n }\n }, [clientLoading]);\n\n useEffect(() => {\n if (fetchedCustomerData && fetchedCustomerData?.data) {\n setFlatCustomers(fetchedCustomerData?.data);\n }\n }, [loading]);\n\n //new codee\n const urlCustomerId = searchParams.get('customerId');\n const urlActiontype = searchParams.get('type');\n\n // Used strictly for getting the account number for the API payload (works for both parent and children)\n const selectedFlatCustomer = flatCustomers?.find(\n (customer: any) => customer?.customer_id?.toString() === urlCustomerId\n );\n const accountNumber = selectedFlatCustomer?.account_number;\n\n // Used strictly for retrieving children bundling IDs (only populates if it's a parent)\n const selectedGroupedCustomer = customers?.find(\n (customer: any) => customer?.customer_id?.toString() === urlCustomerId\n );\n\n const getFilterPayload = () => {\n let payload: any = urlCustomerId;\n if (selectedGroupedCustomer?.children && selectedGroupedCustomer?.children?.length > 0) {\n payload = [\n urlCustomerId,\n ...selectedGroupedCustomer?.children?.map((child: any) => child?.customer_id?.toString())\n ];\n }\n return payload;\n };\n\n //customer name\n const clientOptions = [...(flatCustomers || []), ...(customers || [])]\n .filter((v, i, a) => a?.findIndex((t: any) => t?.customer_id?.toString() === v?.customer_id?.toString()) === i)\n .filter((option: any) => option?.customer_id != null)\n .map((option: any) => {\n const name = String(option?.customer_name || option?.trading_as || '');\n return {\n label: name.charAt(0)?.toUpperCase() + name?.slice(1),\n value: Number(option?.customer_id),\n actions: option?.actions,\n return_locations: option?.return_locations,\n account_number: option?.account_number,\n };\n });\n\n //client change\n const handleClientChange = (value: any, option: any) => {\n setSelectedClient(value);\n\n const filteredClient = clientOptions?.find(\n (client: any) => client?.value == value\n );\n\n if (filteredClient) {\n const mappedActions = Array.isArray(filteredClient?.actions)\n ? filteredClient?.actions?.map((action: any) => ({\n label: action,\n value: action,\n }))\n : [];\n\n setActionTypeOptions(mappedActions);\n\n const mappedLocations = Array.isArray(filteredClient?.return_locations)\n ? filteredClient.return_locations\n .filter(\n (location: any) => location?.location_name && location?.token\n )\n .map((location: any) => ({\n label: location.location_name,\n value: location.token,\n }))\n : [];\n\n setLocationOptions(mappedLocations);\n }\n\n //set payload\n setReturnPayload((prevState: any) => ({\n ...prevState,\n account_number: option?.account_number,\n customer_id: +value,\n }));\n };\n\n useEffect(() => {\n if (urlCustomerId && accountNumber) {\n setReturnPayload((prevState: any) => ({\n ...prevState,\n account_number: accountNumber,\n customer_id: +urlCustomerId,\n }));\n }\n }, [accountNumber, urlCustomerId]);\n\n useEffect(() => {\n if (urlCustomerId) {\n const filteredClient = clientOptions?.find(\n (client: any) => client?.value == urlCustomerId\n );\n\n if (filteredClient) {\n const mappedActions = Array.isArray(filteredClient?.actions)\n ? filteredClient?.actions?.map((action: any) => ({\n label: action,\n value: action,\n }))\n : [];\n\n setActionTypeOptions(mappedActions);\n\n const mappedLocations = Array.isArray(filteredClient?.return_locations)\n ? filteredClient.return_locations\n .filter((location: any) => {\n const name = location?.location_name;\n const token = location?.token;\n return name && name !== 'null' && token && token !== 'null';\n })\n .map((location: any) => ({\n label: location?.location_name,\n value: location?.token,\n }))\n : [];\n\n setLocationOptions(mappedLocations);\n }\n }\n }, [load]);\n\n //location change\n const handleLocationChange = (value: any) => {\n setSelectedLocationValue(value);\n };\n\n //action type\n const handleActionClick = (value: any) => {\n setSelectedFilterValue(value);\n };\n\n //Apply filters\n const applyFilters = () => {\n if (selectedClient) {\n const queryParams = new URLSearchParams({\n customerId: selectedClient?.toString(),\n });\n const currentSearch = window.location.search;\n console.log(currentSearch, 'currentSearch');\n\n if (!currentSearch.includes('filter')) {\n // for dev\n navigate(`/orders/view/return/filter?${queryParams.toString()}`);\n\n // for local\n //navigate(`/filter?${queryParams.toString()}`);\n }\n }\n\n const selectedClientValue = clientOptions?.find(\n (client: any) => client?.value === selectedClient\n );\n\n const clientActions = selectedClientValue?.actions || [];\n const clientLocations = selectedClientValue?.return_locations || [];\n\n setActionTypeOptions(\n Array.isArray(clientActions)\n ? clientActions?.map(action => ({\n label: action,\n value: action,\n }))\n : []\n );\n\n setLocationOptions(\n Array.isArray(clientLocations)\n ? clientLocations?.map(location => ({\n label: location?.location_name,\n value: location?.token,\n }))\n : []\n );\n\n //client value\n if (urlCustomerId) {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: getFilterPayload(),\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n } else {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: [],\n });\n }\n //action value\n if (selectedFilterValue) {\n dispatch({\n type: 'SET_ACTIONS_FILTER',\n payload: selectedFilterValue,\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n }\n //location value\n if (selectedLocationValue && selectedLocationValue?.length > 0) {\n dispatch({\n type: 'SET_LOCATION_FILTER',\n payload: selectedLocationValue,\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n }\n };\n\n useEffect(() => {\n if (selectedClient || selectedFilterValue || selectedLocationValue) {\n setIsButtonEnabled(true);\n } else {\n setIsButtonEnabled(false);\n }\n }, [selectedClient, selectedFilterValue, selectedLocationValue]);\n\n useEffect(() => { }, [location.pathname]);\n\n useEffect(() => {\n if (!selectedFilterValue || selectedFilterValue === null) {\n dispatch({ type: 'CLEAR_ACTION' });\n }\n if (\n !selectedLocationValue ||\n (Array.isArray(selectedLocationValue) &&\n selectedLocationValue.length === 0)\n ) {\n dispatch({ type: 'CLEAR_LOC' });\n }\n }, [selectedFilterValue, selectedLocationValue]);\n\n const handleClear = () => {\n setClear(false);\n dispatch({ type: 'CLEAR_CLIENT' });\n setClear(true);\n };\n\n useEffect(() => {\n if (clearState) {\n dispatch({ type: 'CLEAR_CLIENT' });\n window.location.href = '/orders/view/return/';\n }\n }, [clearState]);\n\n useEffect(() => {\n if (urlCustomerId && urlActiontype) {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: getFilterPayload(),\n });\n setSelectedClient(+urlCustomerId);\n\n dispatch({\n type: 'SET_ACTIONS_FILTER',\n payload: urlActiontype,\n });\n setSelectedFilterValue(urlActiontype);\n\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n } else if (urlCustomerId) {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: getFilterPayload(),\n });\n setSelectedClient(+urlCustomerId);\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n }\n }, [urlCustomerId, customers]);\n\n const handleClearAction = () => {\n dispatch({ type: 'CLEAR_ACTION' });\n\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.delete('type');\n\n navigate(`?${searchParams.toString()}`, { replace: true });\n };\n\n return (\n <>\n <Wrapper>\n <FilterRow>\n <LeftColumn>\n <FilterColumn>\n <Label>Clients</Label>\n <StyledAntSelect\n options={clientOptions}\n placeholder=\"Select Client Name\"\n onChange={handleClientChange}\n style={{ minWidth: '250px' }}\n value={clientOptions?.length > 0 ? selectedClient || undefined : undefined}\n allowClear\n onClear={handleClear}\n filterOption={(input: any, option: any) =>\n (option?.label ?? '')\n .toLowerCase()\n .includes(input.toLowerCase())\n }\n showSearch\n />\n </FilterColumn>\n {selectedClient && (\n <>\n <FilterColumn>\n <Label>Action Type</Label>\n <StyledAntSelect\n options={actionTypeOptions}\n placeholder=\"Select Action Type\"\n value={actionTypeOptions?.length > 0 ? selectedFilterValue || undefined : undefined}\n onChange={handleActionClick}\n style={{ minWidth: '200px' }}\n allowClear\n onClear={handleClearAction}\n />\n </FilterColumn>\n\n <FilterColumn>\n <Label>Location </Label>\n <StyledAntSelect\n options={locationOptions}\n value={locationOptions?.length > 0 ? selectedLocationValue || undefined : undefined}\n placeholder=\"Select Location\"\n onChange={handleLocationChange}\n style={{ minWidth: '200px' }}\n allowClear\n mode=\"multiple\"\n />\n </FilterColumn>\n </>\n )}\n </LeftColumn>\n <RightColumn>\n <ApplyButton onClick={applyFilters} disabled={!isButtonEnabled}>\n Apply\n </ApplyButton>\n </RightColumn>\n </FilterRow>\n </Wrapper>\n </>\n );\n}\n\nconst StyledAntSelect = styled(Select)`\n .ant-select-selector {\n /* width: 22vw; */\n border-radius: 22px;\n }\n .ant-select-clear {\n top: 40% !important;\n font-size: 18px !important;\n }\n`;\n\nexport default SelectionFilter;\n","import React from 'react';\nimport { CoverPage } from './Styledfilters';\nimport SelectionFilter from './SelectionFilter';\nimport { useClientPortal } from '../../store';\n// import ReturnStatus from '../../client-portal/ReturnStatus';\n\nfunction HeaderFilter() {\n const [clientPortal] = useClientPortal();\n\n return (\n <>\n {clientPortal ? (\n // <ReturnStatus />\n <></>\n ) : (\n <>\n <CoverPage>\n <SelectionFilter />\n </CoverPage>\n </>\n )}\n </>\n );\n}\nexport default HeaderFilter;\n","// LeftSide filter\n\nimport styled from 'styled-components';\n\n//Left side\nexport const LeftSideConatiner = styled.div`\n display: flex;\n padding: 1px 5px 1px 1.1px;\n align-items: center;\n gap: 10px;\n border-radius: 40px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n background: var(--Flowkit-White, #fff);\n\n .filtercontainer {\n display: flex;\n padding: 8px 8px 8px 4px;\n align-items: center;\n gap: 4px;\n align-self: stretch;\n border-radius: 20px 0px 0px 20px;\n border-right: 1px solid rgba(0, 0, 0, 0.04);\n background: var(--BjsColor-Bg-F0F2F2, #f0f2f2);\n\n .filtericon {\n display: flex;\n padding: 7px 0px 5px 5px;\n align-items: flex-start;\n gap: 10px;\n border-radius: 30px;\n }\n .textcont {\n color: #758588;\n text-align: center;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n }\n }\n .datefilter {\n display: flex;\n height: 36px;\n padding: 6px 8px;\n justify-content: center;\n align-items: center;\n gap: 2px;\n border-radius: 20px;\n border: 1px solid #edebe8;\n\n .dateiconcontainer {\n display: flex;\n width: 24px;\n height: 24px;\n padding: 5px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 20px;\n border: 1px solid var(--tonal-brown-101, #e2e0db);\n background: #f1f5f6;\n }\n .datetext {\n color: #6a7378;\n\n /* body/captions */\n font-family: 'Lato';\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px; /* 123.077% */\n }\n }\n`;\n\nexport const FilterConatiner = styled.div`\n display: flex;\n padding: 0px 8px 0px 4px;\n align-items: center;\n gap: 4px;\n align-self: stretch;\n border-radius: 20px 0px 0px 20px;\n border-right: 1px solid rgba(0, 0, 0, 0.04);\n background: var(--BjsColor-Bg-F0F2F2, #f0f2f2);\n`;\n\nexport const FilterIconConatiner = styled.div``;\n\n//\nexport const StyledFiter = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nexport const StyledFIlterELements = styled.div`\n display: flex;\n padding: 0;\n gap: 10px;\n align-items: center;\n`;\n\nexport const StyledFilterLabel = styled.div`\n display: flex;\n gap: 4px;\n align-items: center;\n span {\n color: #758588;\n text-align: center;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n }\n`;\n\nexport const Text = styled.div`\n color: #232d42;\n font-style: normal;\n line-height: 175%;\n position: relative;\n padding-right: 10px;\n text-transform: uppercase;\n font-size: 20px;\n font-style: normal;\n font-weight: 900;\n /* &:after{\n content: '';\n width: 1px;\n height: 100%;\n background: rgba(58, 54, 48, 0.20);\n position: absolute;\n right: 0;\n top: 0;\n } */\n`;\n// Right side filter\n\nexport const StyledTableFilter = styled.div``;\n","import React from 'react';\nimport styled from 'styled-components';\nimport {\n countReducerAtom,\n useAtom,\n useReturnData,\n} from '../../../order-view/store';\nimport { useSelectedOrders } from '../../../store';\n// import { StyledBulkItem } from '../../filters/BulkFilterStyle';\n// import SearchType from '../../header/route-header/search/SearchType';\n// import DownloadIcon from '../../../../assets/icons/DownloadIcon';\nimport { ExportButton } from '@bjsdistribution/dms-component-library';\nimport { filtersReducerAtom } from '../../header-filters/filterStore';\n// import { FilterIconConatiner } from '../../filters/FilterStyle';\n\nconst RightFilters = () => {\n const [, dispatch] = useAtom(countReducerAtom);\n const [selectedReturnOrder] = useSelectedOrders();\n const [returnData] = useReturnData();\n const [state] = useAtom(filtersReducerAtom);\n\n const { 'x-filters': filters } = state;\n const moduleInfo = {\n isExportedData: returnData?.length <= 0 ? false : true,\n moduleName: 'return',\n filter: filters,\n file_type: 'csv',\n apiUrlEndPoint: `v1/return/product/pending/`,\n reference: 'return_export',\n feature_name: 'return',\n };\n\n return (\n <Container>\n <ButtonText\n onClick={() => dispatch({ type: 'create-return' })}\n disabled={selectedReturnOrder?.length === 0}\n >\n Create Return\n </ButtonText>\n {/* <StyledBulkItem>\n <SearchType />\n </StyledBulkItem> */}\n {/* <IconConatiner>\n <Mid> */}\n <ExportButton moduleInfoModule={moduleInfo} />\n {/* <DownloadIcon />\n </Mid> */}\n {/* </IconConatiner> */}\n </Container>\n );\n};\nconst Container = styled.div`\n display: flex;\n /* align-items: flex-start; */\n gap: 16px;\n align-items: center;\n`;\n// const Mid = styled.div`\n// display: flex;\n// padding: 4px 10px;\n// align-items: center;\n// gap: 8px;\n// align-self: stretch;\n// border-radius: 15px 0px 0px 15px;\n// `;\n\nconst ButtonText = styled.button`\n color: white;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n\n display: flex;\n padding: 7px 12px;\n justify-content: center;\n align-items: center;\n gap: 2px;\n border-radius: 15px;\n background: #3a3630;\n font-family: 'Lato';\n cursor: pointer;\n border: none;\n\n &:disabled {\n border-radius: 15px;\n background: rgba(136, 128, 117, 0.35);\n color: #888075;\n cursor: not-allowed;\n }\n`;\n\n// const IconConatiner = styled.div`\n// /* display: flex;\n// height: 34px;\n// padding: 4px 10px;\n// align-items: flex-start;\n// border-radius: 8px 8px 8px 8px; */\n// box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n// background: #f0f2f2;\n// border: 1px solid #e2e0db;\n// display: flex;\n// padding: 7px 12px;\n// justify-content: center;\n// align-items: center;\n// gap: 2px;\n// border-radius: 15px;\n// height: 34px;\n// `;\n\n// const IconText = styled.div`\n// color: #3a3630;\n// text-align: center;\n\n// /* body/captions */\n// font-family: 'Lato';\n// font-size: 13px;\n// font-style: normal;\n// font-weight: 400;\n// line-height: 16px;\n// `;\nexport default RightFilters;\n","import dayjs from 'dayjs';\nimport { atom } from 'jotai';\n\ninterface Filter {\n field: string;\n op: string;\n value: any;\n}\n\ninterface Pagination {\n page: number;\n per_page: number;\n}\n\ninterface FilterState {\n 'x-filters': Filter[];\n 'x-pagination': Pagination;\n}\n\nconst initialState: FilterState = {\n 'x-filters': [{ field: 'order_status', op: '=', value: 'complete' }],\n 'x-pagination': { page: 1, per_page: 50 },\n};\n\nconst overviewFilterReducer = (\n state: FilterState,\n action: any\n): FilterState => {\n switch (action.type) {\n case 'SET_CP_DATE_FILTER': {\n const { startDate, endDate, status } = action.payload;\n\n let fieldName = 'created_at';\n if (status === 'return_completed') {\n fieldName = 'action_date';\n }\n\n const filters: Filter[] = [];\n\n if (startDate && endDate && startDate === endDate) {\n filters.push({\n field: fieldName,\n op: '>=',\n value: `${startDate}T00:00:00+00:00`,\n });\n filters.push({\n field: fieldName,\n op: '<=',\n value: `${startDate}T23:59:59+00:00`,\n });\n } else if (startDate && !endDate) {\n const nextDay = dayjs(startDate)\n .add(1, 'day')\n .format('YYYY-MM-DD');\n\n filters.push({\n field: fieldName,\n op: '>=',\n value: `${startDate}T00:00:00+00:00`,\n });\n filters.push({\n field: fieldName,\n op: '<=',\n value: `${nextDay}T00:00:00+00:00`,\n });\n } else {\n if (startDate) {\n filters.push({\n field: fieldName,\n op: '>=',\n value: `${startDate}T00:00:00+00:00`,\n });\n }\n\n if (endDate) {\n filters.push({\n field: fieldName,\n op: '<=',\n value: `${endDate}T23:59:59+00:00`,\n });\n }\n }\n\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(\n f => f.field !== 'created_at' && f.field !== 'action_date'\n ),\n ...filters,\n ],\n };\n }\n\n case 'CLEAR_CP_DATE_FILTER': {\n console.log('Before clearing:', state['x-filters']);\n const updatedFilters = state['x-filters'].filter(\n f => f.field !== 'created_at' && f.field !== 'action_date'\n );\n\n return {\n ...state,\n 'x-filters': updatedFilters,\n };\n }\n\n //client portal\n case 'SET_SCHEDULED_RETURN_FILTER':\n if (action.payload) {\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'order_status'),\n {\n field: 'order_status',\n op: '=',\n value: action.payload,\n },\n ],\n };\n } else {\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'order_status'\n ),\n };\n }\n\n case 'SET_RETURN_COMPLETED_FILTER':\n if (action.payload) {\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'order_status'),\n {\n field: 'order_status',\n op: '=',\n value: action.payload,\n },\n ],\n };\n } else {\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'order_status'\n ),\n };\n }\n\n case 'SET_PAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n page: action.payload,\n },\n };\n\n case 'SET_PERPAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n per_page: action.payload,\n },\n };\n case 'CLEAR_FILTERS':\n return {\n ...state,\n };\n default:\n return state;\n }\n};\n\nconst overviewfiltersStateAtom = atom(initialState);\n\nexport const dateFilterCPReducer = atom(\n get => get(overviewfiltersStateAtom),\n (get, set, action) =>\n set(\n overviewfiltersStateAtom,\n overviewFilterReducer(get(overviewfiltersStateAtom), action)\n )\n);\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { useAtom } from '../order-view/store';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { useParams } from 'react-router-dom';\n// import { filtersReducerReturnAtom } from '../order-daily-overview/return-after-table/table-filters/ReturnFilterStore';\nimport { notification, Spin } from 'antd';\nimport {\n useClientOutstandingReturnData,\n useReturnConfirmedOrderData,\n useSelectedClientAfterOrders,\n // useSelectedClientPortOrders,\n} from '../store';\nimport { dateFilterCPReducer } from './DateFilterStore';\n\nconst ReturnRTFilters = ({ data, payload }: { data: any; payload: any }) => {\n const [outstandingReturnData] = useClientOutstandingReturnData();\n const [returnConfirmedData] = useReturnConfirmedOrderData();\n const [\n selectedOrderIds,\n setSelectedOrderIds,\n ] = useSelectedClientAfterOrders();\n // const [\n // selectedPendingOrderIds,\n // setSelectedPendingOrderIds,\n // ] = useSelectedClientPortOrders();\n const { status } = useParams<{ status: any }>();\n const [spinLoading, setSpinLoading] = useState<boolean>(false);\n const [state] = useAtom(dateFilterCPReducer);\n const { 'x-filters': filters } = state;\n\n //export csv\n const { fetchData: callExportCSV } = useAxios<{\n data: any[];\n message: string;\n }>({\n endpoint: `/v1/export/generate/`,\n method: 'POST',\n });\n const { fetchData: downloadFile } = useAxios({\n endpoint: '/v1/export/download/',\n method: 'POST',\n });\n const download: any = (response: any) => {\n downloadFile({\n endPointQuery: `${response?.data?.file_reference}`,\n })\n .then((response: any) => {\n if (response?.data?.url) {\n window.open(response?.data?.url, '_blank');\n }\n setSpinLoading(false);\n })\n .catch((err: any) => {\n notification.error({\n message: 'Failed to download file',\n description: err,\n });\n setSpinLoading(false);\n });\n };\n\n const handleExportCSV = () => {\n let moduleInfo: any | null = null;\n const url =\n process.env.REACT_APP_API_PATH ||\n 'https://development.dmsbackend.bjshomedelivery.com';\n if (status === 'outstanding_return') {\n moduleInfo = {\n isExportedData: outstandingReturnData?.length > 0,\n file_type: 'csv',\n moduleName: 'return',\n filter: [\n { field: 'isdeleted', op: '=', value: 0 },\n { field: 'product_return_action_id', op: '=', value: 'RTS' },\n ],\n url: `${url}/v1/return/product/pending/`,\n reference: 'return_outstanding_export',\n feature_name: 'return',\n };\n } else if (['scheduled_for_return', 'return_completed'].includes(status)) {\n moduleInfo = {\n isExportedData: returnConfirmedData?.length > 0,\n file_type: 'csv',\n moduleName: 'return',\n url: `${url}/v1/return/orders/`,\n\n reference:\n status === 'scheduled_for_return'\n ? 'return_scheduled_export'\n : 'return_completed_export',\n feature_name: 'return',\n filter: filters,\n };\n }\n\n if (moduleInfo?.isExportedData) {\n setSpinLoading(true);\n\n callExportCSV({\n payload: {\n file_type: moduleInfo?.file_type,\n url: moduleInfo?.url,\n reference: moduleInfo?.reference,\n feature_name: moduleInfo?.feature_name,\n filter: moduleInfo?.filter,\n },\n })\n .then((res: any) => {\n setTimeout(() => download(res), 10000);\n })\n .catch(err => {\n notification.error({\n message: 'Failed to export csv',\n description: err,\n });\n setSpinLoading(false);\n });\n } else {\n notification.warning({ message: 'No data to Export' });\n }\n };\n\n const { fetchData: callExportApi } = useAxios<{\n data: any[];\n message: string;\n }>({\n endpoint:\n selectedOrderIds?.length === 0\n ? `/v1/orders/import/manifest/csv/?fetch_all_orders=true`\n : '/v1/orders/import/manifest/csv/',\n method: 'POST',\n });\n\n // const handleExportManifest = async () => {\n // const exportOrderIds =\n // status === 'outstanding_return'\n // ? selectedPendingOrderIds\n // : status === 'scheduled_for_return' || status === 'return_completed'\n // ? selectedOrderIds\n // : [];\n\n // try {\n // const response = (await callExportApi({\n // payload: { order_ids: exportOrderIds },\n // })) as {\n // code: number | null;\n // error?: string | null;\n // data?: {\n // url?: string;\n // };\n // message?: string;\n // };\n\n // if (response?.data?.url) {\n // notification.success({\n // message: 'Success',\n // description: response?.message || 'Export completed.',\n // });\n // window.open(response?.data?.url, '_blank');\n\n // if (status === 'outstanding_return') {\n // setSelectedPendingOrderIds([]);\n // } else if (\n // status === 'scheduled_for_return' ||\n // status === 'return_completed'\n // ) {\n // setSelectedOrderIds([]);\n // }\n // } else {\n // notification.error({\n // message: 'No File URL',\n // description: 'Export succeeded but no download URL was returned.',\n // });\n // }\n // } catch (error) {\n // console.error('Error during export or download:', error);\n // notification.error({\n // message: 'Export Failed',\n // description: 'Something went wrong during export.',\n // });\n\n // if (status === 'outstanding_return') {\n // setSelectedPendingOrderIds([]);\n // } else if (\n // status === 'scheduled_for_return' ||\n // status === 'return_completed'\n // ) {\n // setSelectedOrderIds([]);\n // }\n // }\n // };\n\n const handleExport = async () => {\n if (data && data?.length > 0) {\n try {\n if (!payload) {\n console.error('Payload is missing');\n return;\n }\n\n const currentIds = [...(selectedOrderIds || [])];\n\n const finalPayload =\n currentIds?.length > 0 ? { order_ids: currentIds } : payload;\n\n const response = (await callExportApi({\n payload: finalPayload,\n })) as {\n code: number | null;\n error?: string | null;\n data?: { url?: string; message?: string };\n message?: string;\n };\n\n if (response?.data?.url) {\n notification.success({\n message: 'Success',\n description: response?.message || 'Export completed.',\n });\n if (response?.data?.url) {\n window.open(response.data.url);\n }\n } else {\n notification.info({\n message: 'Info',\n description: `${response?.message}`,\n });\n }\n } catch (error) {\n console.error('Error during export or download:', error);\n notification.error({\n message: 'Export Failed',\n description: 'Something went wrong during export.',\n });\n } finally {\n setSelectedOrderIds([]);\n }\n } else {\n notification.warning({ message: 'No data to Export' });\n }\n };\n\n return (\n <StyledBulkFilterCover className=\"dmsBulkFilter\">\n {/* <ExportButton moduleInfoModule={moduleInfo} /> */}\n <ExportCSVButton type=\"left\" onClick={handleExportCSV}>\n <div className=\"label\">\n Export CSV <Spin spinning={spinLoading} />\n </div>\n </ExportCSVButton>\n <StyledBulkItem onClick={handleExport}>\n <Text>Export Manifest</Text>\n </StyledBulkItem>\n </StyledBulkFilterCover>\n );\n};\n\nconst Text = styled.div`\n color: #6a7378;\n text-align: center;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n`;\nexport const StyledBulkFilterCover = styled.div`\n border-radius: 100px;\n border: 1px solid rgba(208, 213, 221, 0.5);\n background: #fff;\n display: flex;\n min-height: 40px;\n // gap: 8px;\n`;\n\nexport const StyledBulkItem = styled.div`\n padding: 6px 12px;\n display: flex;\n align-items: center;\n border-right: 1px solid #d0d5dd;\n gap: 8px;\n position: relative;\n a {\n text-decoration: none;\n }\n &.disabled {\n /* opacity: 0.5; */\n width: 150px;\n cursor: default;\n a {\n cursor: default;\n\n label {\n cursor: default;\n }\n }\n }\n &:hover:not(:disabled) {\n background: #f0f0f0;\n cursor: pointer;\n }\n\n @media screen and (max-width: 1030px) {\n padding: 6px 4px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n list-style: none;\n box-sizing: border-box;\n top: 54px;\n }\n &:last-child {\n border-right: none;\n }\n &.active svg.arrowDown {\n transform: rotate(180deg);\n }\n label {\n color: #3a3630;\n text-align: center;\n font-family: 'Open Sans';\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n cursor: pointer;\n }\n\n &.noPadding {\n padding: 0;\n }\n`;\n\nexport const ExportCSVButton = styled.div<{\n type: 'left' | 'right' | 'middle';\n}>`\n display: flex;\n background: #fff;\n min-height: 40px;\n padding: 8px 12px;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n border-radius: ${props =>\n props?.type === 'left'\n ? '50px 0px 0px 50px'\n : props?.type === 'right'\n ? ' 0px 50px 50px 0px'\n : ''};\n border-right: ${props => (props.type === 'right' ? '' : '1px solid #d0d5dd')};\n .label {\n color: #6a7378;\n text-align: center;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n }\n`;\nexport default ReturnRTFilters;\n","import React, { useEffect } from 'react';\nimport {\n StyledFIlterELements,\n StyledFiter,\n StyledTableFilter,\n Text,\n} from '../../filters/FilterStyle';\nimport RightFilters from './RightFilters';\nimport {\n useAtom,\n useClientPortal,\n useCustomerData,\n useSearchAfterText,\n useSearchText,\n useStatsCPCount,\n} from '../../../store';\nimport { useParams } from 'react-router-dom';\nimport ReturnRTFilters from '../../../client-portal/ReturnRTFilters';\nimport { returnCountType } from '../../../client-portal/ReturnStatus';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { dateFilterCPReducer } from '../../../client-portal/DateFilterStore';\n\nconst ReturnFilter = ({ data, payload }: { data?: any; payload?: any }) => {\n const [customers] = useCustomerData();\n const [clientPortal] = useClientPortal();\n const { status } = useParams();\n const [count, setCount] = useStatsCPCount();\n const [debouncedSearchAfterText] = useSearchAfterText();\n const [debouncedSearchText] = useSearchText();\n\n const [state] = useAtom(dateFilterCPReducer);\n const { 'x-filters': filters } = state;\n\n const cleanedFilters = filters.filter(f => f.field !== 'order_status');\n\n const queryParams = new URLSearchParams(location.search);\n const customerId = queryParams.get('customerId');\n\n const selectedCustomer = customers?.find(\n (customer: any) => customer?.customer_id?.toString() === customerId\n );\n\n const customerName = selectedCustomer?.customer_name;\n // const accountNumber = selectedCustomer?.account_number;\n\n const getStatusLabel = (status: string) => {\n switch (status) {\n case 'outstanding_return':\n return 'Outstanding Return';\n case 'scheduled_for_return':\n return 'All Scheduled Orders';\n case 'return_completed':\n // return 'View Return Order';\n return 'Completed Return';\n default:\n return status\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n };\n\n const { data: statsData, loading: statsApiLoading, fetchData } = useAxios<{\n data: returnCountType[];\n }>({\n endpoint: `v1/portal/return/stats/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: cleanedFilters,\n });\n\n useEffect(() => {\n if (\n clientPortal &&\n debouncedSearchAfterText === '' &&\n status == 'return_completed'\n ) {\n fetchData();\n }\n }, [debouncedSearchAfterText, debouncedSearchText, JSON.stringify(filters)]);\n\n useEffect(() => {\n if (statsData?.data && typeof statsData?.data === 'object') {\n setCount(statsData?.data);\n }\n }, [statsApiLoading]);\n\n return (\n <>\n <StyledFiter>\n {!clientPortal ? (\n <>\n <Text>{customerName}</Text>\n <StyledFIlterELements>\n <StyledTableFilter />\n </StyledFIlterELements>\n <RightFilters />\n </>\n ) : (\n <>\n <Text>\n {status\n ? `${getStatusLabel(status)} (${count?.completed_count})`\n : ''}\n </Text>\n\n <ReturnRTFilters data={data} payload={payload} />\n </>\n )}\n </StyledFiter>\n </>\n );\n};\n\nexport default ReturnFilter;\n","import React from 'react';\n\nfunction DownIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n opacity=\"0.4\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.0184 7.41839C5.11965 7.31727 5.2569 7.26047 5.4 7.26047C5.5431 7.26047 5.68035 7.31727 5.7816 7.41839L9 10.6368L12.2184 7.41839C12.3208 7.32301 12.4562 7.27108 12.5961 7.27355C12.736 7.27601 12.8694 7.33269 12.9684 7.43162C13.0673 7.53056 13.124 7.66404 13.1264 7.80394C13.1289 7.94383 13.077 8.07923 12.9816 8.18159L9.3816 11.7816C9.28035 11.8827 9.1431 11.9395 9 11.9395C8.8569 11.9395 8.71965 11.8827 8.6184 11.7816L5.0184 8.18159C4.91727 8.08034 4.86047 7.94309 4.86047 7.79999C4.86047 7.65689 4.91727 7.51964 5.0184 7.41839Z\"\n fill=\"#3A3630\"\n />\n </svg>\n );\n}\n\nexport default DownIcon;\n","import React from 'react';\n\nconst PrinterIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n d=\"M3.7785 0.0139582H10.6602C11.0998 0.0293582 11.4393 0.156758 11.6451 0.440958C11.8089 0.666358 11.8936 0.950558 11.9111 1.30966L11.9104 2.77476H12.7497C13.1886 2.79016 13.5281 2.91686 13.7339 3.20106C13.8977 3.42646 13.9824 3.71136 13.9999 4.07046V9.73836C13.9985 10.1766 13.9677 10.5042 13.8466 10.731C13.659 11.081 13.3118 11.2371 12.7336 11.2833L11.9111 11.2826V12.6469C11.9111 12.9668 11.8537 13.2482 11.7312 13.4869C11.559 13.8215 11.2307 13.9902 10.8093 14H3.3074C2.8916 14 2.55 13.8481 2.3372 13.5366C2.1671 13.2867 2.0782 12.9913 2.0677 12.6469V11.2826H1.3537C0.837796 11.2826 0.443696 11.1286 0.234396 10.7702C0.0782963 10.5028 0.00549633 10.1605 0.00129633 9.73696V4.21746C-0.0141037 3.77226 0.0768963 3.40756 0.298796 3.13736C0.566896 2.80976 1.0317 2.72156 1.668 2.77476L2.1111 2.77406L2.1118 1.45666C2.0964 1.01146 2.1874 0.647458 2.4093 0.376558C2.6774 0.0496582 3.1429 -0.0385418 3.7785 0.0139582ZM10.9738 8.50566H3.005V12.6322C3.0099 12.7911 3.047 12.9122 3.1114 13.0074C3.1345 13.041 3.1814 13.062 3.3074 13.062H10.7981C10.8285 13.0615 10.8588 13.0601 10.8891 13.0578H10.8975C10.9465 12.9633 10.9745 12.8268 10.9745 12.6469L10.9738 8.50566ZM10.0092 11.6795C10.1336 11.6795 10.2529 11.7289 10.3408 11.8168C10.4288 11.9048 10.4782 12.0241 10.4782 12.1485C10.4782 12.2728 10.4288 12.3921 10.3408 12.4801C10.2529 12.568 10.1336 12.6175 10.0092 12.6175H4.0032C3.87881 12.6175 3.75952 12.568 3.67156 12.4801C3.58361 12.3921 3.5342 12.2728 3.5342 12.1485C3.5342 12.0241 3.58361 11.9048 3.67156 11.8168C3.75952 11.7289 3.87881 11.6795 4.0032 11.6795H10.0092ZM10.0092 10.3516C10.1336 10.3516 10.2529 10.401 10.3408 10.4889C10.4288 10.5769 10.4782 10.6962 10.4782 10.8206C10.4782 10.9449 10.4288 11.0642 10.3408 11.1522C10.2529 11.2401 10.1336 11.2896 10.0092 11.2896H4.0032C3.87881 11.2896 3.75952 11.2401 3.67156 11.1522C3.58361 11.0642 3.5342 10.9449 3.5342 10.8206C3.5342 10.6962 3.58361 10.5769 3.67156 10.4889C3.75952 10.401 3.87881 10.3516 4.0032 10.3516H10.0092ZM1.6302 3.71136C1.2319 3.71276 1.1402 3.71276 1.0562 3.80936C0.972196 3.90736 0.930196 3.94796 0.938596 4.20136V9.73276C0.941396 10.0016 0.949796 10.1304 1.0107 10.2284C1.0716 10.3264 1.1367 10.3453 1.3537 10.3453L2.0677 10.3446V8.50566H1.9739C1.84951 8.50566 1.73022 8.45625 1.64226 8.36829C1.55431 8.28034 1.5049 8.16104 1.5049 8.03666C1.5049 7.91227 1.55431 7.79298 1.64226 7.70503C1.73022 7.61707 1.84951 7.56766 1.9739 7.56766H12.0567C12.1811 7.56766 12.3004 7.61707 12.3883 7.70503C12.4763 7.79298 12.5257 7.91227 12.5257 8.03666C12.5257 8.16104 12.4763 8.28034 12.3883 8.36829C12.3004 8.45625 12.1811 8.50566 12.0567 8.50566H11.9111V10.3446L12.6951 10.3467C12.8407 10.3348 12.924 10.3502 12.9996 10.2711C13.0752 10.1913 13.0619 9.99806 13.0626 9.73696V4.09356C13.0549 3.92696 13.0395 3.87096 12.9877 3.81006C12.9359 3.74846 12.8967 3.71906 12.7336 3.71276L1.6302 3.71136ZM10.0092 9.02436C10.1336 9.02436 10.2529 9.07377 10.3408 9.16173C10.4288 9.24968 10.4782 9.36897 10.4782 9.49336C10.4782 9.61774 10.4288 9.73704 10.3408 9.82499C10.2529 9.91295 10.1336 9.96236 10.0092 9.96236H4.0032C3.87881 9.96236 3.75952 9.91295 3.67156 9.82499C3.58361 9.73704 3.5342 9.61774 3.5342 9.49336C3.5342 9.36897 3.58361 9.24968 3.67156 9.16173C3.75952 9.07377 3.87881 9.02436 4.0032 9.02436H10.0092ZM11.2587 4.13976C11.4435 4.13985 11.6264 4.17633 11.7971 4.24713C11.9677 4.31792 12.1228 4.42164 12.2534 4.55235C12.384 4.68307 12.4875 4.83823 12.5582 5.00897C12.6288 5.17971 12.6651 5.36269 12.665 5.54746C12.6649 5.73223 12.6284 5.91517 12.5576 6.08584C12.4868 6.25651 12.3831 6.41157 12.2524 6.54215C12.1217 6.67274 11.9665 6.7763 11.7958 6.84692C11.625 6.91755 11.4421 6.95385 11.2573 6.95376C10.8841 6.95357 10.5263 6.80516 10.2626 6.54116C9.99887 6.27717 9.85081 5.91922 9.851 5.54606C9.85118 5.1729 9.9996 4.8151 10.2636 4.55136C10.5276 4.28763 10.8855 4.13957 11.2587 4.13976ZM11.2587 5.07776C11.1343 5.07776 11.015 5.12717 10.9271 5.21513C10.8391 5.30308 10.7897 5.42237 10.7897 5.54676C10.7897 5.67114 10.8391 5.79044 10.9271 5.87839C11.015 5.96635 11.1343 6.01576 11.2587 6.01576C11.3831 6.01576 11.5024 5.96635 11.5903 5.87839C11.6783 5.79044 11.7277 5.67114 11.7277 5.54676C11.7277 5.42237 11.6783 5.30308 11.5903 5.21513C11.5024 5.12717 11.3831 5.07776 11.2587 5.07776ZM3.1345 0.971558C3.0771 1.04156 3.0407 1.18786 3.0491 1.44056L3.0484 2.77406L10.9731 2.77476L10.9738 1.33276C10.9654 1.16686 10.9325 1.05486 10.8863 0.991858C10.8828 0.986258 10.8079 0.958258 10.6441 0.952658L3.7407 0.950558C3.3508 0.919058 3.145 0.958258 3.1345 0.971558Z\"\n fill=\"#858D9D\"\n />\n </svg>\n );\n};\n\nexport default PrinterIcon;\n","import React from 'react';\nfunction CaretDownFilledIcon(props: any) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g clip-path=\"url(#clip0_2034_435)\">\n <path\n d=\"M13.5 6.75C14.139 6.75 14.4727 7.4895 14.0872 7.96725L14.0302 8.03025L9.53021 12.5303C9.40107 12.6594 9.22924 12.737 9.04698 12.7484C8.86471 12.7599 8.68452 12.7044 8.54021 12.5925L8.46971 12.5303L3.96972 8.03025L3.90746 7.95975L3.86697 7.902L3.82647 7.83L3.81371 7.803L3.79347 7.75275L3.76946 7.67175L3.76196 7.632L3.75446 7.587L3.75146 7.54425V7.45575L3.75521 7.41225L3.76196 7.36725L3.76946 7.32825L3.79347 7.24725L3.81371 7.197L3.86622 7.098L3.91496 7.0305L3.96972 6.96975L4.04021 6.9075L4.09797 6.867L4.16996 6.8265L4.19697 6.81375L4.24721 6.7935L4.32821 6.7695L4.36796 6.762L4.41296 6.7545L4.45571 6.7515L13.5 6.75Z\"\n fill=\"#9E9E9E\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2034_435\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nexport default CaretDownFilledIcon;\n","import React from 'react';\n\nconst SortIcon = () => {\n return (\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"bxs:sort-alt\">\n <path\n id=\"Vector\"\n d=\"M4.15138 7.83335H11.8494C12.424 7.83335 12.7294 7.15335 12.3474 6.72335L8.49871 2.39335C8.43628 2.32288 8.35961 2.26647 8.27377 2.22783C8.18792 2.1892 8.09485 2.16922 8.00071 2.16922C7.90657 2.16922 7.8135 2.1892 7.72766 2.22783C7.64181 2.26647 7.56514 2.32288 7.50271 2.39335L3.65271 6.72335C3.27071 7.15335 3.57604 7.83335 4.15138 7.83335ZM7.50204 14.606C7.56447 14.6765 7.64114 14.7329 7.72699 14.7715C7.81284 14.8102 7.9059 14.8301 8.00004 14.8301C8.09418 14.8301 8.18725 14.8102 8.2731 14.7715C8.35895 14.7329 8.43562 14.6765 8.49804 14.606L12.3467 10.276C12.7294 9.84668 12.424 9.16668 11.8487 9.16668H4.15138C3.57671 9.16668 3.27138 9.84668 3.65338 10.2767L7.50204 14.606Z\"\n fill=\"#9E9E9E\"\n />\n </g>\n </svg>\n );\n};\n\nexport default SortIcon;\n","import CollectionLabelIcon from '../../../assets/icons/CollectionLabelIcon';\nimport CustomerLabelIcon from '../../../assets/icons/CustomerLabelIcon';\nimport DeliveryNotes from '../../../assets/icons/DeliveryNotes';\nimport LoadSheetIcon from '../../../assets/icons/LoadSheetIcon';\nimport RunsheetIcon from '../../../assets/icons/RunsheetIcon';\n\nexport const getStatusBg = (status: string) => {\n switch (status) {\n case 'onTotalOrder':\n return 'rgba(99, 150, 229, 0.20)';\n case 'late':\n return 'rgba(233, 82, 82, 0.20)';\n case 'onComplete':\n return 'rgba(87, 219, 122, 0.20)';\n case 'onPending':\n return 'rgba(254, 186, 48, 0.20)';\n case 'onCollection':\n return 'rgba(123, 97, 255, 0.20)';\n default:\n return 'gray';\n }\n};\n\nexport const getStatusColor = (status: string) => {\n switch (status) {\n case 'onTotalOrder':\n return '#6396E5';\n case 'late':\n return '#E95252';\n case 'onComplete':\n return '#29CC6A';\n case 'onPending':\n return '#FEBA30';\n case 'onCollection':\n return '#7B61FF';\n default:\n return 'gray';\n }\n};\n\nexport const iconMap: Record<\n string,\n React.ComponentType<React.SVGProps<SVGSVGElement>>\n> = {\n assembly: RunsheetIcon,\n heavyItems: RunsheetIcon,\n supplier: RunsheetIcon,\n vip: RunsheetIcon,\n};\n\nexport const PrintIconMap: Record<\n string,\n React.ComponentType<React.SVGProps<SVGSVGElement>>\n> = {\n runSheet: RunsheetIcon,\n loadSheet: LoadSheetIcon,\n deliveryLables: DeliveryNotes,\n customerLables: CustomerLabelIcon,\n collectionLables: CollectionLabelIcon,\n};\n\n// Date format\nexport const formatDate = (date: any) => {\n const padZero = (num: any) => num.toString().padStart(2, '0');\n const year = date.getFullYear();\n const month = padZero(date.getMonth() + 1);\n const day = padZero(date.getDate());\n // const hours = padZero(date.getHours());\n // const minutes = padZero(date.getMinutes());\n // const seconds = padZero(date.getSeconds());\n\n return `\n ${day}/${month}/${year}\n `;\n};\n\nexport const displayValueOrNA = (value: any) => {\n const isBlankArray = Array.isArray(value) && value.length === 0;\n if (value === 0) {\n return 0;\n }\n if (value === 'NA' || value === undefined || value === null || isBlankArray) {\n return 'NA';\n }\n return value;\n};\n","import React from 'react'\n\nconst RunsheetIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n<rect width=\"20\" height=\"20\" fill=\"white\"/>\n<path d=\"M6.5 12C6.36739 12 6.24021 11.9473 6.14645 11.8536C6.05268 11.7598 6 11.6326 6 11.5C6 11.3674 6.05268 11.2402 6.14645 11.1464C6.24021 11.0527 6.36739 11 6.5 11H13.5C13.6326 11 13.7598 11.0527 13.8536 11.1464C13.9473 11.2402 14 11.3674 14 11.5C14 11.6326 13.9473 11.7598 13.8536 11.8536C13.7598 11.9473 13.6326 12 13.5 12H6.5ZM6.5 15C6.36739 15 6.24021 14.9473 6.14645 14.8536C6.05268 14.7598 6 14.6326 6 14.5C6 14.3674 6.05268 14.2402 6.14645 14.1464C6.24021 14.0527 6.36739 14 6.5 14H13.5C13.6326 14 13.7598 14.0527 13.8536 14.1464C13.9473 14.2402 14 14.3674 14 14.5C14 14.6326 13.9473 14.7598 13.8536 14.8536C13.7598 14.9473 13.6326 15 13.5 15H6.5Z\" fill=\"#FEBA30\"/>\n<path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M11.185 1H4.5C4.10218 1 3.72064 1.15804 3.43934 1.43934C3.15804 1.72064 3 2.10218 3 2.5V17.5C3 17.8978 3.15804 18.2794 3.43934 18.5607C3.72064 18.842 4.10218 19 4.5 19H15.5C15.8978 19 16.2794 18.842 16.5607 18.5607C16.842 18.2794 17 17.8978 17 17.5V7.202C16.9999 6.82647 16.859 6.46464 16.605 6.188L12.291 1.486C12.1504 1.33275 11.9795 1.2104 11.7891 1.12673C11.5987 1.04307 11.393 0.99991 11.185 1ZM4 2.5C4 2.36739 4.05268 2.24022 4.14645 2.14645C4.24021 2.05268 4.36739 2 4.5 2H11.185C11.2544 1.99992 11.323 2.01429 11.3865 2.04218C11.4501 2.07007 11.5071 2.11087 11.554 2.162L15.868 6.864C15.9528 6.95616 15.9999 7.07678 16 7.202V17.5C16 17.6326 15.9473 17.7598 15.8536 17.8536C15.7598 17.9473 15.6326 18 15.5 18H4.5C4.36739 18 4.24021 17.9473 4.14645 17.8536C4.05268 17.7598 4 17.6326 4 17.5V2.5Z\" fill=\"#3A3630\"/>\n<path d=\"M11 7H16.5C16.6326 7 16.7598 7.05268 16.8536 7.14645C16.9473 7.24021 17 7.36739 17 7.5C17 7.63261 16.9473 7.75979 16.8536 7.85355C16.7598 7.94732 16.6326 8 16.5 8H10.5C10.3674 8 10.2402 7.94732 10.1464 7.85355C10.0527 7.75979 10 7.63261 10 7.5V1.5C10 1.36739 10.0527 1.24021 10.1464 1.14645C10.2402 1.05268 10.3674 1 10.5 1C10.6326 1 10.7598 1.05268 10.8536 1.14645C10.9473 1.24021 11 1.36739 11 1.5V7Z\" fill=\"#3A3630\"/>\n</svg>\n )\n}\n\nexport default RunsheetIcon","import React from 'react';\n\nconst LoadSheetIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M0.571246 2.66577C0.419742 2.66577 0.274444 2.72595 0.167314 2.83308C0.0601847 2.94021 0 3.08551 0 3.23701V7.80698C0 8.2615 0.180554 8.69739 0.501942 9.01878C0.823331 9.34017 1.25923 9.52072 1.71374 9.52072H5.52205C5.97656 9.52072 6.41245 9.34017 6.73384 9.01878C7.05523 8.69739 7.23579 8.2615 7.23579 7.80698V3.23701C7.23579 3.08551 7.1756 2.94021 7.06847 2.83308C6.96134 2.72595 6.81604 2.66577 6.66454 2.66577H6.47412V1.90411C6.47412 1.56986 6.38613 1.24151 6.219 0.952046C6.05187 0.662584 5.81149 0.422215 5.52203 0.255096C5.23256 0.0879774 4.9042 -2.12281e-06 4.56996 0C4.23571 2.12289e-06 3.90736 0.0879859 3.61789 0.255108C3.32843 0.0879859 3.00007 2.12289e-06 2.66583 0C2.33158 -2.12281e-06 2.00323 0.0879774 1.71376 0.255096C1.42429 0.422215 1.18392 0.662584 1.01679 0.952046C0.84966 1.24151 0.76167 1.56986 0.761662 1.90411V2.66501L0.571246 2.66577ZM4.56997 2.66577V1.90411C4.56997 1.63905 4.51589 1.38618 4.41764 1.15768C4.52831 1.13509 4.64263 1.13739 4.7523 1.16443C4.86197 1.19147 4.96426 1.24257 5.05175 1.31402C5.13924 1.38547 5.20974 1.47548 5.25815 1.57754C5.30655 1.6796 5.33165 1.79115 5.33163 1.90411V2.66577H4.56997ZM3.42748 1.90411V2.66577H1.90415V1.90411C1.90415 1.7021 1.9844 1.50837 2.12724 1.36553C2.27008 1.22269 2.46381 1.14244 2.66582 1.14244C2.86782 1.14244 3.06155 1.22269 3.20439 1.36553C3.34723 1.50837 3.42748 1.7021 3.42748 1.90411ZM0.761662 12.377V10.092C1.0549 10.2146 1.37632 10.2824 1.71374 10.2824H1.90415V12.377C1.90414 12.5182 1.95644 12.6544 2.05097 12.7593C2.14549 12.8643 2.27553 12.9305 2.41599 12.9452C2.57398 12.4998 2.86611 12.1144 3.25218 11.8419C3.63825 11.5694 4.09927 11.4233 4.57181 11.4236C5.04434 11.424 5.50516 11.5708 5.89084 11.8438C6.27653 12.1168 6.56811 12.5026 6.72547 12.9482H8.50928C8.66687 12.5028 8.95859 12.1172 9.34432 11.8444C9.73004 11.5716 10.1908 11.4251 10.6633 11.4249V3.23701C10.6633 3.08551 10.6031 2.94021 10.4959 2.83308C10.3888 2.72595 10.2435 2.66577 10.092 2.66577H7.86949C7.73736 2.38798 7.51357 2.16419 7.23579 2.03207V1.90411C7.23579 1.77462 7.22665 1.64743 7.20913 1.52328H10.092C10.5465 1.52328 10.9824 1.70383 11.3038 2.02522C11.6252 2.34661 11.8058 2.7825 11.8058 3.23701V3.80826H12.9863C13.649 3.80826 14.2522 4.18985 14.5356 4.78852L15.8304 7.5206C15.9385 7.74986 15.9949 8.00045 15.9949 8.25408V12.377C15.9949 12.8315 15.8143 13.2674 15.493 13.5888C15.1716 13.9101 14.7357 14.0907 14.2812 14.0907H12.917C12.8275 14.6236 12.5519 15.1075 12.1394 15.4564C11.7269 15.8054 11.204 15.9969 10.6636 15.9969C10.1233 15.9969 9.60043 15.8054 9.18789 15.4564C8.77535 15.1075 8.49984 14.6236 8.41027 14.0907H6.82297C6.73393 14.6249 6.45806 15.1101 6.04455 15.4598C5.63104 15.8095 5.10676 16.0009 4.56522 16C4.02367 15.9991 3.50004 15.8059 3.08772 15.4548C2.67539 15.1037 2.40116 14.6176 2.31393 14.0831C1.88927 14.0429 1.49486 13.8458 1.2078 13.5303C0.920737 13.2147 0.76166 12.8035 0.761662 12.377ZM12.8188 12.9482H14.2812C14.4327 12.9482 14.578 12.888 14.6851 12.7809C14.7922 12.6738 14.8524 12.5285 14.8524 12.377V12.1865H13.9003C13.7488 12.1865 13.6035 12.1264 13.4964 12.0192C13.3893 11.9121 13.3291 11.7668 13.3291 11.6153C13.3291 11.4638 13.3893 11.3185 13.4964 11.2114C13.6035 11.1042 13.7488 11.044 13.9003 11.044H14.8524V8.75906H11.8058V11.7303C12.2774 12.003 12.6365 12.4348 12.8188 12.9482ZM11.8058 4.95075V7.61657H14.611L13.5043 5.27751C13.458 5.17973 13.3848 5.09712 13.2934 5.03927C13.202 4.98143 13.096 4.95073 12.9879 4.95075H11.8058ZM4.56997 14.8524C4.87298 14.8524 5.16358 14.732 5.37783 14.5177C5.59209 14.3035 5.71246 14.0129 5.71246 13.7099C5.71246 13.4069 5.59209 13.1163 5.37783 12.902C5.16358 12.6877 4.87298 12.5674 4.56997 12.5674C4.26696 12.5674 3.97636 12.6877 3.76211 12.902C3.54785 13.1163 3.42748 13.4069 3.42748 13.7099C3.42748 14.0129 3.54785 14.3035 3.76211 14.5177C3.97636 14.732 4.26696 14.8524 4.56997 14.8524ZM11.8058 13.7099C11.8058 13.4069 11.6854 13.1163 11.4711 12.902C11.2569 12.6877 10.9663 12.5674 10.6633 12.5674C10.3603 12.5674 10.0697 12.6877 9.8554 12.902C9.64114 13.1163 9.52077 13.4069 9.52077 13.7099C9.52077 14.0129 9.64114 14.3035 9.8554 14.5177C10.0697 14.732 10.3603 14.8524 10.6633 14.8524C10.9663 14.8524 11.2569 14.732 11.4711 14.5177C11.6854 14.3035 11.8058 14.0129 11.8058 13.7099ZM1.90415 1.90411C1.90415 1.79595 1.927 1.69313 1.96737 1.59944L1.90415 1.90411Z\"\n fill=\"#FEBA30\"\n />\n </svg>\n );\n};\n\nexport default LoadSheetIcon;\n","import React from 'react';\n\nconst DeliveryNotes = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <g clipPath=\"url(#clip0_137_17767)\">\n <path\n d=\"M4.31833 0.0159435H12.1831C12.6855 0.0335435 13.0735 0.179144 13.3087 0.503944C13.4959 0.761544 13.5927 1.08634 13.6127 1.49674L13.6119 3.17114H14.5711C15.0727 3.18874 15.4607 3.33354 15.6959 3.65834C15.8831 3.91594 15.9799 4.24154 15.9999 4.65194V11.1295C15.9983 11.6303 15.9631 12.0047 15.8247 12.2639C15.6103 12.6639 15.2135 12.8423 14.5527 12.8951L13.6127 12.8943V14.4535C13.6127 14.8191 13.5471 15.1407 13.4071 15.4135C13.2103 15.7959 12.8351 15.9887 12.3535 15.9999H3.77993C3.30473 15.9999 2.91433 15.8263 2.67113 15.4703C2.47673 15.1847 2.37513 14.8471 2.36313 14.4535V12.8943H1.54713C0.957534 12.8943 0.507134 12.7183 0.267934 12.3087C0.0895338 12.0031 0.00633383 11.6119 0.00153383 11.1279V4.81994C-0.0160662 4.31114 0.0879338 3.89434 0.341534 3.58554C0.647934 3.21114 1.17913 3.11034 1.90633 3.17114L2.41273 3.17034L2.41353 1.66474C2.39593 1.15594 2.49993 0.739944 2.75353 0.430344C3.05993 0.0567435 3.59193 -0.0440565 4.31833 0.0159435ZM12.5415 9.72074H3.43433V14.4367C3.43993 14.6183 3.48233 14.7567 3.55593 14.8655C3.58233 14.9039 3.63593 14.9279 3.77993 14.9279H12.3407C12.3754 14.9275 12.4101 14.9259 12.4447 14.9231H12.4543C12.5103 14.8151 12.5423 14.6591 12.5423 14.4535L12.5415 9.72074ZM11.4391 13.3479C11.5813 13.3479 11.7176 13.4044 11.8181 13.5049C11.9187 13.6055 11.9751 13.7418 11.9751 13.8839C11.9751 14.0261 11.9187 14.1624 11.8181 14.263C11.7176 14.3635 11.5813 14.4199 11.4391 14.4199H4.57513C4.43298 14.4199 4.29664 14.3635 4.19612 14.263C4.0956 14.1624 4.03913 14.0261 4.03913 13.8839C4.03913 13.7418 4.0956 13.6055 4.19612 13.5049C4.29664 13.4044 4.43298 13.3479 4.57513 13.3479H11.4391ZM11.4391 11.8303C11.5813 11.8303 11.7176 11.8868 11.8181 11.9873C11.9187 12.0879 11.9751 12.2242 11.9751 12.3663C11.9751 12.5085 11.9187 12.6448 11.8181 12.7454C11.7176 12.8459 11.5813 12.9023 11.4391 12.9023H4.57513C4.43298 12.9023 4.29664 12.8459 4.19612 12.7454C4.0956 12.6448 4.03913 12.5085 4.03913 12.3663C4.03913 12.2242 4.0956 12.0879 4.19612 11.9873C4.29664 11.8868 4.43298 11.8303 4.57513 11.8303H11.4391ZM1.86313 4.24154C1.40793 4.24314 1.30313 4.24314 1.20713 4.35354C1.11113 4.46554 1.06313 4.51194 1.07273 4.80154V11.1231C1.07593 11.4303 1.08553 11.5775 1.15513 11.6895C1.22473 11.8015 1.29913 11.8231 1.54713 11.8231L2.36313 11.8223V9.72074H2.25593C2.11378 9.72074 1.97744 9.66427 1.87692 9.56375C1.7764 9.46323 1.71993 9.3269 1.71993 9.18474C1.71993 9.04259 1.7764 8.90625 1.87692 8.80573C1.97744 8.70522 2.11378 8.64874 2.25593 8.64874H13.7791C13.9213 8.64874 14.0576 8.70522 14.1581 8.80573C14.2587 8.90625 14.3151 9.04259 14.3151 9.18474C14.3151 9.3269 14.2587 9.46323 14.1581 9.56375C14.0576 9.66427 13.9213 9.72074 13.7791 9.72074H13.6127V11.8223L14.5087 11.8247C14.6751 11.8111 14.7703 11.8287 14.8567 11.7383C14.9431 11.6471 14.9279 11.4263 14.9287 11.1279V4.67834C14.9199 4.48794 14.9023 4.42394 14.8431 4.35434C14.7839 4.28394 14.7391 4.25034 14.5527 4.24314L1.86313 4.24154ZM11.4391 10.3135C11.5813 10.3135 11.7176 10.37 11.8181 10.4705C11.9187 10.5711 11.9751 10.7074 11.9751 10.8495C11.9751 10.9917 11.9187 11.128 11.8181 11.2286C11.7176 11.3291 11.5813 11.3855 11.4391 11.3855H4.57513C4.43298 11.3855 4.29664 11.3291 4.19612 11.2286C4.0956 11.128 4.03913 10.9917 4.03913 10.8495C4.03913 10.7074 4.0956 10.5711 4.19612 10.4705C4.29664 10.37 4.43298 10.3135 4.57513 10.3135H11.4391ZM12.8671 4.73114C13.0783 4.73125 13.2874 4.77294 13.4824 4.85385C13.6775 4.93476 13.8547 5.05329 14.0039 5.20268C14.1532 5.35207 14.2715 5.5294 14.3522 5.72453C14.433 5.91966 14.4744 6.12878 14.4743 6.33994C14.4742 6.55111 14.4325 6.76019 14.3516 6.95524C14.2707 7.15029 14.1522 7.3275 14.0028 7.47674C13.8534 7.62598 13.6761 7.74434 13.481 7.82505C13.2858 7.90576 13.0767 7.94725 12.8655 7.94714C12.4391 7.94693 12.0301 7.77732 11.7287 7.47561C11.4273 7.1739 11.2581 6.76481 11.2583 6.33834C11.2585 5.91188 11.4282 5.50296 11.7299 5.20155C12.0316 4.90014 12.4407 4.73093 12.8671 4.73114ZM12.8671 5.80314C12.725 5.80314 12.5886 5.85962 12.4881 5.96013C12.3876 6.06065 12.3311 6.19699 12.3311 6.33914C12.3311 6.4813 12.3876 6.61763 12.4881 6.71815C12.5886 6.81867 12.725 6.87514 12.8671 6.87514C13.0093 6.87514 13.1456 6.81867 13.2461 6.71815C13.3467 6.61763 13.4031 6.4813 13.4031 6.33914C13.4031 6.19699 13.3467 6.06065 13.2461 5.96013C13.1456 5.85962 13.0093 5.80314 12.8671 5.80314ZM3.58233 1.11034C3.51673 1.19034 3.47513 1.35754 3.48473 1.64634L3.48393 3.17034L12.5407 3.17114L12.5415 1.52314C12.5319 1.33354 12.4943 1.20554 12.4415 1.13354C12.4375 1.12714 12.3519 1.09514 12.1647 1.08874L4.27513 1.08634C3.82953 1.05034 3.59433 1.09514 3.58233 1.11034Z\"\n fill=\"#6396E5\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_137_17767\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default DeliveryNotes;","import React from 'react';\n\nconst CustomerLabelIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <g clipPath=\"url(#clip0_137_17783)\">\n <path\n d=\"M4.31833 0.0159435H12.1831C12.6855 0.0335435 13.0735 0.179144 13.3087 0.503944C13.4959 0.761544 13.5927 1.08634 13.6127 1.49674L13.6119 3.17114H14.5711C15.0727 3.18874 15.4607 3.33354 15.6959 3.65834C15.8831 3.91594 15.9799 4.24154 15.9999 4.65194V11.1295C15.9983 11.6303 15.9631 12.0047 15.8247 12.2639C15.6103 12.6639 15.2135 12.8423 14.5527 12.8951L13.6127 12.8943V14.4535C13.6127 14.8191 13.5471 15.1407 13.4071 15.4135C13.2103 15.7959 12.8351 15.9887 12.3535 15.9999H3.77993C3.30473 15.9999 2.91433 15.8263 2.67113 15.4703C2.47673 15.1847 2.37513 14.8471 2.36313 14.4535V12.8943H1.54713C0.957534 12.8943 0.507134 12.7183 0.267934 12.3087C0.0895338 12.0031 0.00633383 11.6119 0.00153383 11.1279V4.81994C-0.0160662 4.31114 0.0879338 3.89434 0.341534 3.58554C0.647934 3.21114 1.17913 3.11034 1.90633 3.17114L2.41273 3.17034L2.41353 1.66474C2.39593 1.15594 2.49993 0.739944 2.75353 0.430344C3.05993 0.0567435 3.59193 -0.0440565 4.31833 0.0159435ZM12.5415 9.72074H3.43433V14.4367C3.43993 14.6183 3.48233 14.7567 3.55593 14.8655C3.58233 14.9039 3.63593 14.9279 3.77993 14.9279H12.3407C12.3754 14.9275 12.4101 14.9259 12.4447 14.9231H12.4543C12.5103 14.8151 12.5423 14.6591 12.5423 14.4535L12.5415 9.72074ZM11.4391 13.3479C11.5813 13.3479 11.7176 13.4044 11.8181 13.5049C11.9187 13.6055 11.9751 13.7418 11.9751 13.8839C11.9751 14.0261 11.9187 14.1624 11.8181 14.263C11.7176 14.3635 11.5813 14.4199 11.4391 14.4199H4.57513C4.43298 14.4199 4.29664 14.3635 4.19612 14.263C4.0956 14.1624 4.03913 14.0261 4.03913 13.8839C4.03913 13.7418 4.0956 13.6055 4.19612 13.5049C4.29664 13.4044 4.43298 13.3479 4.57513 13.3479H11.4391ZM11.4391 11.8303C11.5813 11.8303 11.7176 11.8868 11.8181 11.9873C11.9187 12.0879 11.9751 12.2242 11.9751 12.3663C11.9751 12.5085 11.9187 12.6448 11.8181 12.7454C11.7176 12.8459 11.5813 12.9023 11.4391 12.9023H4.57513C4.43298 12.9023 4.29664 12.8459 4.19612 12.7454C4.0956 12.6448 4.03913 12.5085 4.03913 12.3663C4.03913 12.2242 4.0956 12.0879 4.19612 11.9873C4.29664 11.8868 4.43298 11.8303 4.57513 11.8303H11.4391ZM1.86313 4.24154C1.40793 4.24314 1.30313 4.24314 1.20713 4.35354C1.11113 4.46554 1.06313 4.51194 1.07273 4.80154V11.1231C1.07593 11.4303 1.08553 11.5775 1.15513 11.6895C1.22473 11.8015 1.29913 11.8231 1.54713 11.8231L2.36313 11.8223V9.72074H2.25593C2.11378 9.72074 1.97744 9.66427 1.87692 9.56375C1.7764 9.46323 1.71993 9.3269 1.71993 9.18474C1.71993 9.04259 1.7764 8.90625 1.87692 8.80573C1.97744 8.70522 2.11378 8.64874 2.25593 8.64874H13.7791C13.9213 8.64874 14.0576 8.70522 14.1581 8.80573C14.2587 8.90625 14.3151 9.04259 14.3151 9.18474C14.3151 9.3269 14.2587 9.46323 14.1581 9.56375C14.0576 9.66427 13.9213 9.72074 13.7791 9.72074H13.6127V11.8223L14.5087 11.8247C14.6751 11.8111 14.7703 11.8287 14.8567 11.7383C14.9431 11.6471 14.9279 11.4263 14.9287 11.1279V4.67834C14.9199 4.48794 14.9023 4.42394 14.8431 4.35434C14.7839 4.28394 14.7391 4.25034 14.5527 4.24314L1.86313 4.24154ZM11.4391 10.3135C11.5813 10.3135 11.7176 10.37 11.8181 10.4705C11.9187 10.5711 11.9751 10.7074 11.9751 10.8495C11.9751 10.9917 11.9187 11.128 11.8181 11.2286C11.7176 11.3291 11.5813 11.3855 11.4391 11.3855H4.57513C4.43298 11.3855 4.29664 11.3291 4.19612 11.2286C4.0956 11.128 4.03913 10.9917 4.03913 10.8495C4.03913 10.7074 4.0956 10.5711 4.19612 10.4705C4.29664 10.37 4.43298 10.3135 4.57513 10.3135H11.4391ZM12.8671 4.73114C13.0783 4.73125 13.2874 4.77294 13.4824 4.85385C13.6775 4.93476 13.8547 5.05329 14.0039 5.20268C14.1532 5.35207 14.2715 5.5294 14.3522 5.72453C14.433 5.91966 14.4744 6.12878 14.4743 6.33994C14.4742 6.55111 14.4325 6.76019 14.3516 6.95524C14.2707 7.15029 14.1522 7.3275 14.0028 7.47674C13.8534 7.62598 13.6761 7.74434 13.481 7.82505C13.2858 7.90576 13.0767 7.94725 12.8655 7.94714C12.4391 7.94693 12.0301 7.77732 11.7287 7.47561C11.4273 7.1739 11.2581 6.76481 11.2583 6.33834C11.2585 5.91188 11.4282 5.50296 11.7299 5.20155C12.0316 4.90014 12.4407 4.73093 12.8671 4.73114ZM12.8671 5.80314C12.725 5.80314 12.5886 5.85962 12.4881 5.96013C12.3876 6.06065 12.3311 6.19699 12.3311 6.33914C12.3311 6.4813 12.3876 6.61763 12.4881 6.71815C12.5886 6.81867 12.725 6.87514 12.8671 6.87514C13.0093 6.87514 13.1456 6.81867 13.2461 6.71815C13.3467 6.61763 13.4031 6.4813 13.4031 6.33914C13.4031 6.19699 13.3467 6.06065 13.2461 5.96013C13.1456 5.85962 13.0093 5.80314 12.8671 5.80314ZM3.58233 1.11034C3.51673 1.19034 3.47513 1.35754 3.48473 1.64634L3.48393 3.17034L12.5407 3.17114L12.5415 1.52314C12.5319 1.33354 12.4943 1.20554 12.4415 1.13354C12.4375 1.12714 12.3519 1.09514 12.1647 1.08874L4.27513 1.08634C3.82953 1.05034 3.59433 1.09514 3.58233 1.11034Z\"\n fill=\"#E95252\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_137_17783\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default CustomerLabelIcon;\n","import React from 'react';\n\nconst CollectionLabelIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <g clipPath=\"url(#clip0_137_17799)\">\n <path\n d=\"M4.31833 0.0159435H12.1831C12.6855 0.0335435 13.0735 0.179144 13.3087 0.503944C13.4959 0.761544 13.5927 1.08634 13.6127 1.49674L13.6119 3.17114H14.5711C15.0727 3.18874 15.4607 3.33354 15.6959 3.65834C15.8831 3.91594 15.9799 4.24154 15.9999 4.65194V11.1295C15.9983 11.6303 15.9631 12.0047 15.8247 12.2639C15.6103 12.6639 15.2135 12.8423 14.5527 12.8951L13.6127 12.8943V14.4535C13.6127 14.8191 13.5471 15.1407 13.4071 15.4135C13.2103 15.7959 12.8351 15.9887 12.3535 15.9999H3.77993C3.30473 15.9999 2.91433 15.8263 2.67113 15.4703C2.47673 15.1847 2.37513 14.8471 2.36313 14.4535V12.8943H1.54713C0.957534 12.8943 0.507134 12.7183 0.267934 12.3087C0.0895338 12.0031 0.00633383 11.6119 0.00153383 11.1279V4.81994C-0.0160662 4.31114 0.0879338 3.89434 0.341534 3.58554C0.647934 3.21114 1.17913 3.11034 1.90633 3.17114L2.41273 3.17034L2.41353 1.66474C2.39593 1.15594 2.49993 0.739944 2.75353 0.430344C3.05993 0.0567435 3.59193 -0.0440565 4.31833 0.0159435ZM12.5415 9.72074H3.43433V14.4367C3.43993 14.6183 3.48233 14.7567 3.55593 14.8655C3.58233 14.9039 3.63593 14.9279 3.77993 14.9279H12.3407C12.3754 14.9275 12.4101 14.9259 12.4447 14.9231H12.4543C12.5103 14.8151 12.5423 14.6591 12.5423 14.4535L12.5415 9.72074ZM11.4391 13.3479C11.5813 13.3479 11.7176 13.4044 11.8181 13.5049C11.9187 13.6055 11.9751 13.7418 11.9751 13.8839C11.9751 14.0261 11.9187 14.1624 11.8181 14.263C11.7176 14.3635 11.5813 14.4199 11.4391 14.4199H4.57513C4.43298 14.4199 4.29664 14.3635 4.19612 14.263C4.0956 14.1624 4.03913 14.0261 4.03913 13.8839C4.03913 13.7418 4.0956 13.6055 4.19612 13.5049C4.29664 13.4044 4.43298 13.3479 4.57513 13.3479H11.4391ZM11.4391 11.8303C11.5813 11.8303 11.7176 11.8868 11.8181 11.9873C11.9187 12.0879 11.9751 12.2242 11.9751 12.3663C11.9751 12.5085 11.9187 12.6448 11.8181 12.7454C11.7176 12.8459 11.5813 12.9023 11.4391 12.9023H4.57513C4.43298 12.9023 4.29664 12.8459 4.19612 12.7454C4.0956 12.6448 4.03913 12.5085 4.03913 12.3663C4.03913 12.2242 4.0956 12.0879 4.19612 11.9873C4.29664 11.8868 4.43298 11.8303 4.57513 11.8303H11.4391ZM1.86313 4.24154C1.40793 4.24314 1.30313 4.24314 1.20713 4.35354C1.11113 4.46554 1.06313 4.51194 1.07273 4.80154V11.1231C1.07593 11.4303 1.08553 11.5775 1.15513 11.6895C1.22473 11.8015 1.29913 11.8231 1.54713 11.8231L2.36313 11.8223V9.72074H2.25593C2.11378 9.72074 1.97744 9.66427 1.87692 9.56375C1.7764 9.46323 1.71993 9.3269 1.71993 9.18474C1.71993 9.04259 1.7764 8.90625 1.87692 8.80573C1.97744 8.70522 2.11378 8.64874 2.25593 8.64874H13.7791C13.9213 8.64874 14.0576 8.70522 14.1581 8.80573C14.2587 8.90625 14.3151 9.04259 14.3151 9.18474C14.3151 9.3269 14.2587 9.46323 14.1581 9.56375C14.0576 9.66427 13.9213 9.72074 13.7791 9.72074H13.6127V11.8223L14.5087 11.8247C14.6751 11.8111 14.7703 11.8287 14.8567 11.7383C14.9431 11.6471 14.9279 11.4263 14.9287 11.1279V4.67834C14.9199 4.48794 14.9023 4.42394 14.8431 4.35434C14.7839 4.28394 14.7391 4.25034 14.5527 4.24314L1.86313 4.24154ZM11.4391 10.3135C11.5813 10.3135 11.7176 10.37 11.8181 10.4705C11.9187 10.5711 11.9751 10.7074 11.9751 10.8495C11.9751 10.9917 11.9187 11.128 11.8181 11.2286C11.7176 11.3291 11.5813 11.3855 11.4391 11.3855H4.57513C4.43298 11.3855 4.29664 11.3291 4.19612 11.2286C4.0956 11.128 4.03913 10.9917 4.03913 10.8495C4.03913 10.7074 4.0956 10.5711 4.19612 10.4705C4.29664 10.37 4.43298 10.3135 4.57513 10.3135H11.4391ZM12.8671 4.73114C13.0783 4.73125 13.2874 4.77294 13.4824 4.85385C13.6775 4.93476 13.8547 5.05329 14.0039 5.20268C14.1532 5.35207 14.2715 5.5294 14.3522 5.72453C14.433 5.91966 14.4744 6.12878 14.4743 6.33994C14.4742 6.55111 14.4325 6.76019 14.3516 6.95524C14.2707 7.15029 14.1522 7.3275 14.0028 7.47674C13.8534 7.62598 13.6761 7.74434 13.481 7.82505C13.2858 7.90576 13.0767 7.94725 12.8655 7.94714C12.4391 7.94693 12.0301 7.77732 11.7287 7.47561C11.4273 7.1739 11.2581 6.76481 11.2583 6.33834C11.2585 5.91188 11.4282 5.50296 11.7299 5.20155C12.0316 4.90014 12.4407 4.73093 12.8671 4.73114ZM12.8671 5.80314C12.725 5.80314 12.5886 5.85962 12.4881 5.96013C12.3876 6.06065 12.3311 6.19699 12.3311 6.33914C12.3311 6.4813 12.3876 6.61763 12.4881 6.71815C12.5886 6.81867 12.725 6.87514 12.8671 6.87514C13.0093 6.87514 13.1456 6.81867 13.2461 6.71815C13.3467 6.61763 13.4031 6.4813 13.4031 6.33914C13.4031 6.19699 13.3467 6.06065 13.2461 5.96013C13.1456 5.85962 13.0093 5.80314 12.8671 5.80314ZM3.58233 1.11034C3.51673 1.19034 3.47513 1.35754 3.48473 1.64634L3.48393 3.17034L12.5407 3.17114L12.5415 1.52314C12.5319 1.33354 12.4943 1.20554 12.4415 1.13354C12.4375 1.12714 12.3519 1.09514 12.1647 1.08874L4.27513 1.08634C3.82953 1.05034 3.59433 1.09514 3.58233 1.11034Z\"\n fill=\"#FEBA30\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_137_17799\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default CollectionLabelIcon;\n","import { getProjectEnv } from '@bjsdistribution/dms-component-library';\n\nconst basedEnv = getProjectEnv();\n\nexport const POSTCODE_LABEL = basedEnv === 'release_us' ? 'Zipcode' : 'Postcode';\nexport const CURRENCY_SYMBOL = basedEnv === 'release_us' ? '$' : '£';\nexport const WEIGHT_UNIT = basedEnv === 'release_us' ? 'LBS' : 'KG';\n\nexport const getEnvironment = () => basedEnv;\n","import { POSTCODE_LABEL } from '../../../common/utils';\nexport const RouteCountTable = [\n {\n id: 1,\n icon: 'onTotalOrder',\n status: 'onTotalOrder',\n count: 200,\n label: 'TOTAL ORDERS',\n },\n\n {\n id: 3,\n icon: 'onComplete',\n status: 'onComplete',\n count: 200,\n label: 'Deliverd',\n },\n\n {\n id: 4,\n icon: 'onPending',\n status: 'onPending',\n count: 200,\n label: 'Pending',\n },\n // {\n // id: 5,\n // icon: 'collection',\n // status: 'collection',\n // count: 2000,\n // label: 'Completed',\n // },\n {\n id: 2,\n icon: 'onCollection',\n status: 'late',\n count: 200,\n label: 'Failed',\n },\n];\n\nexport const FilterRoutes = [\n { id: 1, icon: 'assembly', label: 'Assembly Routes', value: '' },\n {\n id: 2,\n icon: 'heavyItems',\n label: 'Heavy Items',\n value: 'contains_heavy_item',\n },\n {\n id: 3,\n icon: 'supplier',\n label: 'Supplier Collections',\n value: 'contains_collection',\n },\n { id: 4, icon: 'vip', label: 'VIP', value: '' },\n];\n\nexport const departmentDropDownList = [\n {\n label: 'Made-Direct',\n value: 'madedirect',\n },\n {\n label: 'Made-Direct',\n value: 'madedirect',\n },\n {\n label: 'Made-Direct',\n value: 'madedirect',\n },\n {\n label: 'Made-Direct',\n value: 'madedirect',\n },\n];\n\nexport const TableData = [\n {\n tableHead: [\n { key: 'time', label: 'Time', alwaysVisible: true },\n { key: 'tomtom', label: 'Tomtom', alwaysVisible: true },\n { key: 'recipient', label: 'Recipient', alwaysVisible: true },\n { key: 'postcode', label: POSTCODE_LABEL },\n { key: 'route', label: 'Route' },\n\n { key: 'vehicle', label: 'Vehicle' },\n { key: 'driverSideman', label: 'Crew' },\n { key: 'customer', label: 'Customer' },\n { key: 'ArrivalDeparture', label: 'Arrival-> Departure' },\n { key: 'status', label: 'Status' },\n { key: 'action', label: 'Action' },\n ],\n },\n];\n\ninterface PrintOption {\n icon: string;\n label: string;\n type: string;\n}\n\nexport const optionsPrint: PrintOption[] = [\n { icon: 'runSheet', label: 'Print Runsheet', type: 'runsheet_url' },\n { icon: 'loadSheet', label: 'Print Loadsheet', type: 'loadsheet_url' },\n {\n icon: 'deliveryLables',\n label: 'Print Delivery Labels',\n type: 'delivery_label_url',\n },\n {\n icon: 'customerLables',\n label: 'Print Customer Labels',\n type: 'customer_label_url',\n },\n {\n icon: 'collectionLables',\n label: 'Print Return Labels',\n type: 'return_label_url',\n },\n];\n\nexport const optionsClientPortPrint: PrintOption[] = [\n {\n icon: 'deliveryLables',\n label: 'Print Delivery Labels',\n type: 'delivery_label_url',\n },\n {\n icon: 'customerLables',\n label: 'Print Customer Labels',\n type: 'customer_label_url',\n },\n {\n icon: 'collectionLables',\n label: 'Print Return Labels',\n type: 'return_label_url',\n },\n];\n\nexport const optionsForReturnPrint = [\n { icon: 'deliveryLables', label: 'Print Return Labels' },\n];\n\nexport const Depots = [\n { value: 'bjsCouriers', label: 'BJS COURIERS' },\n { value: 'bjsSales', label: 'BJS SALES' },\n { value: 'test', label: 'TEST' },\n];\n\nexport const TableData2 = [\n {\n tableHead: [\n { key: 'drop', label: 'Drop', alwaysVisible: true },\n { key: 'escalation', label: 'Escalation', alwaysVisible: true },\n { key: 'arriveDepart', label: 'Arrive/Depart', alwaysVisible: true },\n { key: 'type', label: 'Type' },\n { key: 'recipient', label: 'Recipient' },\n { key: 'instructions', label: 'Instructions' },\n { key: 'postCode', label: POSTCODE_LABEL },\n { key: 'customer', label: 'Customer' },\n { key: 'weightCubes', label: 'Weight/Cubes' },\n { key: 'boxes', label: 'Boxes' },\n { key: 'received', label: 'Received' },\n { key: 'actStartFinish', label: 'Act Start/Finish' },\n { key: 'status', label: 'Status' },\n { key: 'action', label: 'Action' },\n { key: 'linkOrder', label: 'Link Order' },\n ],\n tableBody: [\n {\n drop: { id: 1 },\n escalation: { name: 'VIP 2' },\n arriveDepart: {\n arriveTime: '11:30',\n departime: '23:28',\n slote: 'Slot:8-11',\n days: 'All Day',\n },\n type: {\n icontype: 'collection',\n },\n recipient: {\n name: 'Clayton Hopkins',\n isValid: true,\n },\n instructions: {\n notes: 'Closed for lunch between 12:30 - 13:30 hrs. Business Hours',\n },\n postCode: {\n code: 'DN31 2PE',\n },\n customer: {\n name: 'HAPPY BEDS 2 Man',\n },\n weightCubes: {\n weight: '1,959.73kg',\n cube: '12.70 CBM',\n },\n boxes: {\n count: '6 (6)',\n },\n received: {\n status: 'No stock Received',\n },\n actStartFinish: {\n startTIme: '23:00',\n endTime: '23:47',\n totalTime: '47m',\n },\n status: {\n status: 'completed',\n },\n action: {\n dateCOnfirm: true,\n preCall: 'true',\n },\n linkOrder: {\n status: true,\n },\n },\n ],\n },\n];\n","import React from 'react';\nimport styled from 'styled-components';\nimport { PrintIconMap } from '../../../../order-daily-overview/shared/utlis';\nimport { PrintData } from '../../../../order-daily-overview/shared/interface';\nimport { optionsForReturnPrint } from '../../../../order-daily-overview/common/fakedata';\n\nconst options: PrintData[] = optionsForReturnPrint;\n\nconst PrintDropDownReturn = ({\n legacyURL,\n legacyProductID,\n}: {\n legacyProductID: any;\n legacyURL: string;\n}) => {\n const downloadFiles = () => {\n if (!legacyURL) return;\n\n const url = `${legacyURL}${legacyProductID}`;\n window.open(url, '_blank');\n console.log(url, 'urlurl');\n };\n return (\n <OptionsList>\n {options?.map((item, index) => {\n const IconComponent = PrintIconMap[item.icon];\n const isDisabled = !legacyURL || !legacyProductID;\n\n return (\n <OptionsListLi\n key={index}\n onClick={!isDisabled ? downloadFiles : undefined}\n disabled={isDisabled}\n >\n {IconComponent && <IconComponent />} {item.label}\n </OptionsListLi>\n );\n })}\n </OptionsList>\n );\n};\n\nexport default PrintDropDownReturn;\n\nexport const OptionsList = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n box-sizing: border-box;\n border-radius: 6px;\n border: 1px solid rgba(224, 226, 231, 0.5);\n background: #fff;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n width: 177px;\n padding: 5px 1px 3px 1px;\n position: absolute;\n top: 26px;\n right: 0;\n z-index: 99;\n min-width: 194px;\n`;\n\nexport const OptionsListLi = styled.li<{ disabled?: boolean }>`\n border-bottom: 1px solid #f0f2f2;\n padding: 8px 10px;\n display: flex;\n gap: 12px;\n align-items: center;\n font-size: 13px;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n color: ${({ disabled }) => (disabled ? '#ccc' : 'inherit')};\n pointer-events: ${({ disabled }) => (disabled ? 'none' : 'auto')};\n background-color: ${({ disabled }) => (disabled ? '#f5f5f5' : 'transparent')};\n\n &:last-child {\n border: none;\n }\n`;\n","import styled from 'styled-components';\n\nexport const ColumStyle = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n gap: 7px;\n`;\n\nexport const GreyBox = styled.div`\n display: flex;\n padding: 3px 12px;\n align-items: flex-start;\n gap: 24px;\n border-radius: 6px;\n background: rgba(153, 153, 153, 0.1);\n`;\n// Styled components\nexport const StyledTableWrapper = styled.div`\n overflow-x: auto;\n max-height: calc(100vh - 396px);\n /* box-shadow: 0px 0px 30px 6px rgba(46, 45, 116, 0.05); */\n &::-webkit-scrollbar {\n width: 5px;\n border-radius: 100px;\n height: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background: #777;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #7b61ff;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: #7b61ff;\n }\n`;\n\nexport const StyledTable = styled.table`\n border-spacing: 0 10px;\n width: 100%;\n table-layout: fixed;\n /* min-width: 1600px; */\n thead {\n position: sticky;\n top: 10px;\n z-index: 1;\n background: #fff;\n box-shadow: 0px 0px 1px #ffffff, 0px -10px 1px #ffffff;\n tr {\n border-radius: 40px;\n border-spacing: 0 10px;\n font-family: 'lato', sans-serif;\n .emailInvoiceCheckbox {\n padding-right: 0px;\n width: 0;\n > div {\n width: fit-content;\n }\n }\n .emailInvoiceNo {\n padding-left: 12px;\n }\n .emailInvoiceShare {\n width: 100px;\n }\n th {\n color: #3a3630;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n padding: 11px 15px;\n background: #f0f2f2;\n border-right: none;\n border-left: none;\n text-align: left;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-width: 1px 0;\n &:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n &:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n }\n }\n }\n tbody {\n max-height: 400px;\n overflow-y: auto;\n tr {\n td {\n color: #3a3630;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n padding: 12px 15px;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n word-break: break-word;\n\n .shareIconContainer {\n display: flex;\n width: 24px;\n height: 24px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n flex-shrink: 0;\n border-radius: 15px;\n background: #edebe8;\n cursor: pointer;\n }\n .statuscontainer {\n display: flex;\n padding: 6px 10px;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1 0 0;\n border-radius: 22px;\n background: rgba(41, 204, 106, 0.15);\n }\n }\n &:nth-child(even) td {\n background: #f6fbff;\n }\n td:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n td:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n .flex {\n display: flex;\n flex-direction: row;\n gap: 5px;\n height: 29px;\n align-items: center;\n }\n\n &.insideTable {\n td {\n border-radius: 0;\n border: none;\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n table {\n border-spacing: 0;\n width: 100%;\n border-radius: 5px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n overflow: hidden;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n thead {\n tr {\n border-bottom: none;\n th {\n padding: 14px 20px;\n text-align: left;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n background: #f8fafc;\n\n &:first-child {\n border-radius: 0;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n border-top-left-radius: 15px;\n }\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n tbody {\n tr {\n td {\n padding: 14px 20px;\n text-align: left;\n border-bottom: 1px solid rgba(58, 54, 48, 0.15);\n background: #fff;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n }\n }\n }\n }\n }\n }\n .actions {\n display: flex;\n align-items: center;\n gap: 20px;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n\n .close-icon {\n transform: scale(1.3);\n background-color: transparent;\n border-radius: 0;\n padding: 0;\n }\n }\n`;\n\nexport const StyledThBase = styled.th`\n color: #3a3630;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n padding: 11px 15px;\n background: #f0f2f2;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n text-align: left;\n`;\n\nexport const StyledTdBasic = styled.td`\n color: #3a3630;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n padding: 15px;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n`;\n\nexport const StyledFlex = styled.div`\n display: flex;\n gap: 8px;\n align-items: center;\n em {\n padding-left: 8px;\n border-left: 2px dotted #758588;\n font-style: normal;\n }\n span {\n display: block;\n line-height: 1;\n &:first-child {\n margin-bottom: 5px;\n }\n }\n`;\nexport const StyledRoundedBorder = styled.div`\n border-radius: 30px;\n border: 1px solid #edefef;\n background: #f6fbff;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const RouteName = styled.div`\n font-weight: 600;\n color: #09f;\n margin-bottom: 6px;\n`;\n\nexport const StyledFlexGap4 = styled.div`\n display: flex;\n gap: 4px;\n /* align-items: center; */\n`;\n\nexport const TomtomName = styled.div`\n color: #29cc6a;\n font-size: 13px;\n font-weight: 600;\n line-height: 24px;\n`;\nexport const StyledLineBreak = styled.div``;\nexport const Weight = styled.div`\n font-size: 10px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px;\n`;\n\nexport const StyledIconCover = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n span {\n margin-top: 4px;\n &.ascending svg path:first-child {\n fill: #000;\n }\n &.descending svg path:last-child {\n fill: #000;\n }\n }\n`;\n\nexport const TomtomCover = styled.div`\n transform: scale(0.5);\n`;\n\nexport const CustomDrop = styled.div`\n border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #fff;\n display: flex;\n padding: 4px 8px;\n gap: 8px;\n align-items: center;\n cursor: pointer;\n &.active .drop {\n transform: rotate(180deg);\n }\n`;\n\nexport const CoverCustomDrop = styled.div`\n position: relative;\n`;\n\nexport const IconCoverData = styled.div`\n display: flex;\n gap: 8px;\n align-items: center;\n svg {\n cursor: pointer;\n }\n`;\n\n// For route details\nexport const StyledCollapseWrapper = styled.div`\n border-radius: 15px;\n border: 1px solid #e3e3e3;\n background: #fff;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n padding-bottom: 10px;\n`;\n\nexport const StyledCollapseHeadWrapper = styled.div`\n border-bottom: 1px solid #e3e3e3;\n background: #f8fafc;\n display: flex;\n padding: 10px 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 15px 15px 0 0;\n`;\n\nexport const StyledCollapseBody = styled.div`\n /* padding-left: 45px; */\n position: relative;\n padding-right: 15px;\n`;\n\nexport const StyledTh = styled(StyledThBase)`\n background: none;\n padding: 0px;\n border-radius: 0 !important;\n border: none;\n padding: 14px 20px;\n border-radius: 15px 0px 0px 0px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n\n background: #f8fafc;\n`;\n\nexport const StyledTd = styled(StyledTdBasic)`\n background: none;\n border: none;\n padding: 0;\n td td {\n padding: 0 10px;\n min-width: 140px;\n max-width: 140px;\n &:nth-child(3) {\n min-width: 210px;\n max-width: 210px;\n }\n }\n`;\n\nexport const StyledDateWrapper = styled.div`\n border-radius: 100px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n background: #faf9f9;\n padding: 6px 8px;\n color: #888075;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n display: inline-block;\n`;\n\nexport const StyledLocationName = styled.div`\n color: #fc7743;\n`;\n\nexport const StyledToggleStatus = styled.div`\n border-radius: 20px;\n border: 1px solid rgba(233, 82, 82, 0.5);\n background: rgba(233, 82, 82, 0.15);\n padding: 2px 8px;\n display: flex;\n cursor: pointer;\n max-width: 70px;\n\n &.active .coverArrow {\n transform: rotate(0deg);\n position: relative;\n top: 2px;\n }\n .coverArrow {\n transform: rotate(180deg);\n position: relative;\n top: -2px;\n }\n\n .circle {\n width: 24px;\n height: 24px;\n border-radius: 100px;\n border: 1px solid #e95252;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n &:after {\n content: '';\n width: 10px;\n height: 10px;\n border-radius: 100px;\n background: #e95252;\n }\n }\n`;\n\nexport const StyledTimeTrack = styled.div`\n border-radius: 12px;\n background: #fff;\n\n position: absolute;\n top: 86px;\n left: 3px;\n min-width: 36px;\n span {\n padding: 2px 6px;\n color: #687d9b;\n font-weight: 600;\n font-size: 11px;\n position: relative;\n z-index: 2;\n background: #fff;\n border-radius: 100px;\n border: 1px solid #edefef;\n }\n\n i {\n width: 2px;\n height: 36px;\n background: #7b91b0;\n display: block;\n position: absolute;\n top: 58%;\n transform: translateY(-50%);\n left: 0;\n right: 0;\n margin: 0 auto;\n z-index: 1;\n &:after,\n &::before {\n width: 5px;\n height: 5px;\n display: block;\n background: #7b91b0;\n position: absolute;\n top: -5px;\n content: '';\n border-radius: 100px;\n left: -1px;\n }\n &:after {\n top: auto;\n bottom: -4px;\n }\n }\n`;\n\nexport const StyledWeight = styled.div`\n font-size: 13px;\n color: #e95252;\n`;\nexport const StyledCube = styled(StyledWeight)`\n font-size: 10px;\n`;\n\nexport const Header = styled.th`\n color: #3a3630;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n padding: 11px 15px;\n background: #f0f2f2;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n text-align: left;\n`;\n\nexport const Back = styled.div`\n border-radius: 20px;\n border: 1px solid var(--contextual-blue, #6396e5);\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n color: #6396e5;\n align-content: center;\n padding: 4px 12px;\n height: 28px;\n cursor: pointer;\n &:hover {\n background-color: #89b8ff;\n color: white;\n }\n`;\n\nexport const Remove = styled.div`\n border-radius: 20px;\n border: 1px solid rgba(233, 82, 82, 0.5);\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n color: #e95252;\n align-content: center;\n padding: 4px 12px;\n height: 28px;\n cursor: pointer;\n &:hover {\n background-color: #ff7b7b;\n color: white;\n }\n`;\n\nexport const Buttons = styled.div`\n display: flex;\n flex-direction: row;\n gap: 10px;\n white-space: nowrap;\n align-items: center;\n`;\nexport const EmptyDataContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const ClearAll = styled.div`\n border-radius: 20px;\n border: 1px solid #edebe8;\n background: #fff;\n display: flex;\n padding: 6px 6px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n\n &.active {\n background: #313130;\n & > div {\n color: #fff;\n }\n }\n`;\nexport const StyledFilterBtnIcon = styled.div`\n display: flex;\n width: 24px;\n height: 24px;\n justify-content: center;\n align-items: center;\n border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #b2b3b3;\n .cross {\n position: relative;\n &:after {\n display: inline-block;\n content: 'X';\n font-style: normal;\n font-size: 14px;\n color: #000;\n }\n }\n`;\nexport const StyledFilterBtnLabel = styled.div`\n color: #6a7378;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n white-space: nowrap;\n`;\n","import { Button } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\n\nexport const IconContainers = styled.div`\n display: flex;\n gap: 5px;\n i {\n display: flex;\n width: 25px;\n height: 25px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n flex-shrink: 0;\n border-radius: 15px;\n background: #edebe8;\n svg {\n }\n }\n`;\n\nexport const Div = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const ModalTitle = styled.span`\n font-size: 20px;\n font-weight: 900;\n line-height: 32px;\n margin: 5px;\n padding: 0;\n text-transform: uppercase;\n align-items: center;\n display: flex;\n justify-content: center;\n`;\n\nexport const Description = styled.span`\n color: #aea9a1;\n padding: 10px;\n`;\n\nexport const Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 75px;\n height: 75px;\n padding: 14px;\n border-radius: 50%;\n background: #eff2f5;\n border: 10px solid #b7d0f7;\n`;\n\nexport const ConfirmButton = styled(Button)``;\n\nexport const CancelButton = styled.button`\n cursor: pointer;\n font-size: 16px;\n opacity: 1;\n background: white;\n color: #3a3630;\n border: thin solid #3a3630;\n white-space: nowrap;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 40px;\n padding: 8px 10px;\n border-radius: 6px;\n`;\n\nexport const SectionsContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 10px;\n text-align: center;\n`;\n\nexport const MainContainer = styled.div`\n padding: 24px;\n border-radius: 12px;\n background: #ffffff;\n box-shadow: 0px 20px 24px -4px #10182814;\n width: 30%;\n max-width: 50%;\n margin: 0 auto;\n @media (max-width: 1024px) {\n max-width: 40%;\n }\n`;\n\nexport const ButtonContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 10px;\n`;\n\n// export const StyledTable = styled.table`\n// border-spacing: 0 12px;\n// width: 100%;\n// thead {\n// tr {\n// border-radius: 40px;\n// border-spacing: 0 12px;\n// th {\n// color: #3a3630;\n// font-size: 14px;\n// font-style: normal;\n// font-weight: 600;\n// line-height: normal;\n// padding: 11px 15px;\n// background: #f0f2f2;\n// border-right: none;\n// border-left: none;\n// text-align: left;\n// border: 1px solid rgba(0, 0, 0, 0.08);\n// border-width: 1px 0;\n// &:first-child {\n// border-radius: 100px 0 0 100px;\n// border-left: 1px solid rgba(0, 0, 0, 0.08);\n// }\n// &:last-child {\n// border-radius: 0px 100px 100px 0;\n// border-right: 1px solid rgba(0, 0, 0, 0.08);\n// }\n// }\n// }\n// }\n// tbody {\n// tr {\n// td {\n// color: #3a3630;\n// font-size: 13px;\n// font-style: normal;\n// font-weight: 400;\n// line-height: normal;\n// padding: 12px 15px;\n// background: #fff;\n// border: 1px solid rgba(0, 0, 0, 0.08);\n// border-right: none;\n// border-left: none;\n\n// > svg {\n// transform: scale(1.5);\n// background-color: #edebe8;\n// border-radius: 20px;\n// padding: 5px;\n// }\n// }\n// td:first-child {\n// border-radius: 100px 0 0 100px;\n// border-left: 1px solid rgba(0, 0, 0, 0.08);\n// }\n// td:last-child {\n// border-radius: 0px 100px 100px 0;\n// border-right: 1px solid rgba(0, 0, 0, 0.08);\n// }\n// .flex {\n// display: flex;\n// flex-direction: row;\n// gap: 15px;\n// height: 29px;\n// align-items: center;\n\n// > svg {\n// transform: scale(1.5);\n// background-color: #edebe8;\n// border-radius: 20px;\n// }\n// }\n// }\n// }\n// `;\n\nexport const Header = styled.div`\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid #e3e3e3;\n`;\n\nexport const HeaderText = styled.div`\n color: #3a3630;\n font-size: 16px;\n font-weight: 500;\n text-transform: uppercase;\n padding: 10px;\n`;\n\nexport const Padding = styled.div`\n padding: 0px 10px 10px 10px;\n`;\n\nexport const HeaderCont = styled.div`\n display: flex;\n flex-direction: column;\n padding: 10px;\n`;\n\nexport const Main = styled.div`\n border: 1px solid #e3e3e3;\n background: #f8fafc;\n justify-content: space-between;\n align-items: center;\n border-radius: 15px 15px 0 0;\n margin-top: 15px;\n padding-top: 10px;\n`;\n\nexport const SendButton = styled(Button)`\n border-radius: 25px;\n &:disabled {\n background-color: #d3d3d3;\n cursor: not-allowed;\n }\n`;\n\nexport const TdWrapper = styled.span`\n background-color: rgba(153, 153, 153, 0.1);\n padding: 3px 12px;\n border-radius: 4px;\n`;\n\nexport const EmptyDataContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const StyledTable = styled.table`\n border-spacing: 0 10px;\n width: 100%;\n /* min-width: 1600px; */\n thead {\n white-space: nowrap;\n position: sticky;\n top: 10px;\n z-index: 1;\n background: #fff;\n box-shadow: 0px 0px 1px #ffffff, 0px -10px 1px #ffffff;\n tr {\n border-radius: 40px;\n border-spacing: 0 10px;\n position: relative;\n font-family: 'lato', sans-serif;\n .emailInvoiceCheckbox {\n padding-right: 0px;\n width: 0;\n > div {\n width: fit-content;\n }\n }\n .custom-check {\n position: absolute;\n }\n .emailInvoiceNo {\n padding-left: 0px;\n }\n .emailInvoiceShare {\n width: 100px;\n }\n th {\n color: #3a3630;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n padding: 11px 15px;\n background: #f0f2f2;\n border-right: none;\n border-left: none;\n text-align: left;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-width: 1px 0;\n &:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n &:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n .sortIconClass {\n cursor: pointer;\n display: flex;\n }\n }\n }\n }\n tbody {\n max-height: 400px;\n overflow-y: auto;\n tr {\n td {\n color: #3a3630;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n padding: 12px 15px;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n position: relative;\n .disabled-wrapper {\n cursor: not-allowed !important;\n display: inline-block;\n * {\n pointer-events: none !important;\n }\n }\n .actionbox {\n display: flex;\n gap: 5px;\n }\n .shareIconContainer {\n display: flex;\n padding: 2px 12px;\n align-items: center;\n gap: 8px;\n border-radius: 20px;\n border: 1px solid var(--tonal-brown-101, #e2e0db);\n background: #fff;\n list-style-type: none;\n /* padding-left: 0; */\n /* fontWeight: 600,\n paddingLeft: 0, */\n cursor: pointer;\n position: relative;\n }\n .statusCancelled {\n color: #e95252;\n /* background: rgba(233, 82, 82, 0.15); */\n padding: 4px 8px;\n border-radius: 4px;\n }\n\n .statusOnHold {\n color: #f4a503;\n /* background: #fff1d6; */\n padding: 4px 8px;\n border-radius: 4px;\n }\n\n .statusSubContracted {\n color: #845adf;\n /* background: rgba(132, 90, 223, 0.15); */\n padding: 4px 8px;\n border-radius: 4px;\n }\n\n .statusAwaiting {\n color: #845adf;\n /* background: rgba(132, 90, 223, 0.15); */\n padding: 4px 8px;\n border-radius: 4px;\n }\n\n .statusCompleted {\n color: #1f9254;\n /* background: rgba(41, 204, 106, 0.15); */\n padding: 4px 8px;\n border-radius: 4px;\n }\n\n .statusOutstanding {\n color: #f4a503;\n /* background: #fff1d6; */\n padding: 4px 8px;\n border-radius: 4px;\n }\n\n .statusUnknown {\n color: #000;\n /* background: #fff; */\n padding: 4px 8px;\n border-radius: 4px;\n }\n .statustext {\n color: #1f9254;\n font-family: 'Open Sans';\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n }\n .downloadcontainer {\n display: flex;\n padding: 2px 12px;\n align-items: center;\n\n width: 28px;\n height: 28px;\n flex-direction: column;\n\n border-radius: 14px;\n border: 1px solid #e2e0db;\n background: #fff;\n }\n .statuscontainer {\n display: flex;\n padding: 5px 30px 5px 30px;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1 0 0;\n border-radius: 22px;\n background: rgba(41, 204, 106, 0.15);\n }\n .awaiting {\n display: flex;\n min-width: 85px;\n padding: 6px 10px;\n justify-content: center;\n align-items: center;\n gap: 5px;\n border-radius: 22px;\n background: rgba(233, 82, 82, 0.15);\n color: #e95252;\n font-family: 'Open Sans';\n font-size: 12px;\n font-weight: 600;\n }\n ul > li > a {\n text-decoration: none !important;\n color: #0099ff;\n }\n }\n &:nth-child(even) td {\n background: #f6fbff;\n }\n td:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n td:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n .flex {\n display: flex;\n flex-direction: row;\n gap: 5px;\n height: 29px;\n align-items: center;\n }\n\n &.insideTable {\n td {\n border-radius: 0;\n border: none;\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n table {\n border-spacing: 0;\n width: 100%;\n border-radius: 5px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n overflow: hidden;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n thead {\n tr {\n border-bottom: none;\n th {\n padding: 14px 20px;\n text-align: left;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n background: #f8fafc;\n\n &:first-child {\n border-radius: 0;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n border-top-left-radius: 15px;\n }\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n tbody {\n tr.product-row td {\n border-bottom: none;\n }\n\n tr.ni-row td {\n border-top: none;\n padding-top: 0;\n background: #fff;\n }\n\n tr.product-row td:first-child {\n border-bottom-left-radius: 0;\n }\n\n tr.product-row td:last-child {\n border-bottom-right-radius: 0;\n }\n\n tr.ni-row td:first-child {\n border-top-left-radius: 0;\n }\n\n tr.ni-row td:last-child {\n border-top-right-radius: 0;\n }\n\n tr.ni-row:nth-child(even) td {\n background: #fff;\n }\n tr {\n td {\n padding: 14px 20px;\n text-align: left;\n border-bottom: 1px solid rgba(58, 54, 48, 0.15);\n background: #fff;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n }\n }\n }\n }\n }\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 20px;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n\n .close-icon {\n transform: scale(1.3);\n background-color: transparent;\n border-radius: 0;\n padding: 0;\n }\n }\n`;\n\n// Styled components\nexport const StyledTableWrapper = styled.div`\n max-height: 60vh;\n overflow-x: auto;\n // min-height: 50vh;\n\n .fortables {\n max-height: 60vh;\n overflow-x: auto;\n min-height: 50vh;\n }\n /* height: 600px; */\n /* box-shadow: 0px 0px 30px 6px rgba(46, 45, 116, 0.05); */\n &::-webkit-scrollbar {\n width: 5px;\n border-radius: 100px;\n height: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background: #777;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #7b61ff;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: #7b61ff;\n }\n`;\n\nexport const CustomDrop = styled.div`\n /* border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #fff;\n display: flex;\n padding: 4px 8px;\n gap: 8px;\n align-items: center; */\n cursor: pointer;\n &.active .drop {\n transform: rotate(180deg);\n }\n`;\n","import { Checkbox, useApiHook } from '@bjsdistribution/dms-component-library';\nimport { Empty, notification, Skeleton, Tooltip } from 'antd';\nimport { format } from 'date-fns';\nimport { useAtom } from 'jotai';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport DownIcon from '../../../../assets/icons/DownIcon';\nimport PrinterIcon from '../../../../assets/icons/PrinterIcon';\nimport CaretDownFilledIcon from '../../../../common/CaretDownFilledIcon';\nimport SortIcon from '../../../../common/SortIcon';\nimport PrintDropDownReturn from '../../../order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn';\nimport { usefetchAgain, useReturnData } from '../../../order-view/store';\nimport {\n useFlatCustomerData,\n useGroupedPayload,\n useLocationData,\n useNewReturnPayload,\n useReturnPayload,\n useSelectAll,\n useSelectedOrders,\n} from '../../../store';\nimport { ApiResponse } from '../../../types';\nimport { filtersReducerAtom } from '../../header-filters/filterStore';\nimport { displayValueOrNA } from '../../shared/utlis';\nimport {\n useLoading,\n UsePaginationData,\n usePrintOptionTOggle,\n} from '../../store/store';\nimport { EmptyDataContainer } from '../../table/table-data/styles';\nimport { CustomDrop, StyledTable, StyledTableWrapper } from './returnstyles';\nimport { NavLink, useSearchParams } from 'react-router-dom';\nimport { WEIGHT_UNIT } from '../../../../common/utils';\n\nconst SELECTABLE_ACTIONS = [\n 'RTS',\n 'CLAIMS PAID',\n 'DISPOSE',\n 'RE-ALLOCATE',\n 'RECYCLE',\n 'UNKNOWN',\n];\n\nconst isSelectableItem = (item: any) =>\n SELECTABLE_ACTIONS.includes(item?.product_return_action) &&\n item?.return_location !== 'null' &&\n item?.return_location !== null;\n\nconst ReturnOrderTable = () => {\n const [state] = useAtom(filtersReducerAtom);\n const [selectedReturnOrder, setSelectedReturnOrder] = useSelectedOrders();\n const [selectAll, setSelectAll] = useSelectAll();\n const { 'x-filters': filters, 'x-pagination': pagination } = state;\n const [returnData, setReturnData] = useReturnData();\n const [load, setLoading] = useLoading();\n const dropdownRefParent = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [printToogle, setPrintToggle] = usePrintOptionTOggle();\n const [, setReturnPayload] = useReturnPayload();\n const [newpayload, setNewPayload] = useNewReturnPayload();\n const [, setGrouped] = useGroupedPayload();\n const [locationData] = useLocationData();\n const [, setPaginationObject] = UsePaginationData();\n const [callForFetch] = usefetchAgain();\n const [searchParams] = useSearchParams();\n const urlCustomerId = searchParams.get('customerId');\n //sorting\n const [sortConfig, setSortConfig] = useState<{\n key: string;\n direction: 'asc' | 'desc';\n } | null>(null);\n\n const handleSort = (key: string) => {\n setSortConfig((prev: any) => {\n if (prev?.key === key && prev.direction === 'asc') {\n return { key, direction: 'desc' };\n }\n return { key, direction: 'asc' };\n });\n };\n\n const sortedData = useMemo(() => {\n if (!returnData || !sortConfig) return returnData;\n\n const { key, direction } = sortConfig;\n return [...returnData].sort((a, b) => {\n const valueA = a[key];\n const valueB = b[key];\n\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n return direction === 'asc' ? valueA - valueB : valueB - valueA;\n }\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n return direction === 'asc'\n ? valueA.localeCompare(valueB)\n : valueB.localeCompare(valueA);\n }\n return 0;\n });\n }, [returnData, sortConfig]);\n\n const renderSortIcon = (columnKey: string) => {\n if (!sortConfig || sortConfig.key !== columnKey) {\n return <SortIcon />;\n }\n return sortConfig.direction === 'asc' ? (\n <CaretDownFilledIcon />\n ) : (\n <CaretDownFilledIcon />\n );\n };\n\n const OpenDropDown = (index: number) => {\n setPrintToggle(prevIndex => (prevIndex === index ? null : index));\n };\n // Close dropdown outside click\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setPrintToggle(null);\n }\n };\n\n const {\n data: fetchedOrderData,\n loading: returnDataLoad,\n paginationData,\n setShouldPerformAction,\n } = useApiHook<ApiResponse>({\n endpoint: '/v1/return/product/pending/',\n method: 'GET',\n filters: filters,\n pagination: pagination,\n performAction: false,\n showLoader: false,\n });\n\n useEffect(() => {\n setLoading(returnDataLoad);\n if (fetchedOrderData && fetchedOrderData?.data) {\n setReturnData(fetchedOrderData?.data);\n if (paginationData) {\n try {\n const { count, ...rest } = JSON.parse(paginationData);\n setPaginationObject(rest);\n } catch (error) {\n console.error('Error parsing paginationData:', error);\n notification.error({\n message: 'Error',\n description: 'Failed to parse pagination data',\n });\n }\n } else {\n notification.error({\n message: 'Error',\n description: 'Pagination data is null or undefined',\n });\n }\n }\n }, [fetchedOrderData, returnDataLoad]);\n\n useEffect(() => {\n setLoading(returnDataLoad);\n setShouldPerformAction(true);\n if (fetchedOrderData && fetchedOrderData?.data && locationData) {\n const updatedReturnData = fetchedOrderData.data.map(returnItem => {\n const matchingLocation = locationData.find(\n (location: any) => location?.token === returnItem?.return_location\n );\n return {\n ...returnItem,\n new_location: matchingLocation\n ? matchingLocation?.location_name\n : null,\n };\n });\n\n setReturnData(updatedReturnData);\n }\n // setShouldPerformAction(false);\n }, [fetchedOrderData, returnDataLoad, locationData, state, callForFetch]);\n // const [customers] = useCustomerData();\n const [flatCustomers] = useFlatCustomerData();\n\n const selectedCustomer = flatCustomers?.find((customer: any) => {\n const customerId = customer?.customer_id?.toString();\n return customerId && customerId === urlCustomerId;\n });\n\n const accountNumber = selectedCustomer?.account_number;\n console.log(selectedCustomer, 'selectedCustomer');\n const handleSelectAll = (e: any) => {\n const isChecked = e.target.checked;\n setSelectAll(isChecked);\n\n if (isChecked) {\n const firstSelectable = returnData?.find((loc: any) =>\n isSelectableItem(loc)\n );\n const targetAction =\n selectedReturnOrder.length > 0\n ? selectedReturnOrder[0]?.product_return_action\n : firstSelectable?.product_return_action;\n\n if (!targetAction) return;\n\n const filteredData = returnData?.filter(\n (loc: any) =>\n isSelectableItem(loc) && loc?.product_return_action === targetAction\n );\n\n const selectedOrders = filteredData.map((loc: any) => ({\n id: loc.id,\n return_locations: loc?.return_location_name,\n return_location: loc?.return_location,\n products: loc?.legacy_product_id,\n product_return_action: loc?.product_return_action,\n return_location_token: loc?.return_location,\n }));\n const newPayload = filteredData.map((loc: any) => ({\n id: loc.id,\n account_number: accountNumber,\n customer_id: Number(urlCustomerId),\n products: [loc?.legacy_product_id],\n return_action: loc?.product_return_action,\n return_location_token: loc?.return_location || null,\n }));\n console.log(newPayload, 'newPayloadnewPayload');\n\n setSelectedReturnOrder(selectedOrders);\n setNewPayload(newPayload);\n } else {\n setSelectedReturnOrder([]);\n setNewPayload([]);\n setGrouped([]);\n }\n };\n\n const handleSelectOrderReturn = (\n id: any,\n return_location: any,\n return_location_name: any,\n product_return_action: any,\n legacy_product_id: any\n ) => {\n setSelectedReturnOrder((prevSelectedLocations: any) => {\n const isSelected = prevSelectedLocations?.some(\n (loc: any) => loc.id === id\n );\n if (isSelected) {\n const updatedSelectedLocations = prevSelectedLocations.filter(\n (loc: any) => loc.id !== id\n );\n\n setReturnPayload(prevState => ({\n ...prevState,\n products: legacy_product_id,\n return_action: product_return_action || null,\n return_location_token: return_location || null,\n }));\n\n setNewPayload((prevPayload: any) =>\n prevPayload.filter((item: any) => item.id !== id)\n );\n\n const targetAction = product_return_action;\n const totalItemsOfAction = returnData?.filter(\n (loc: any) =>\n isSelectableItem(loc) && loc?.product_return_action === targetAction\n )?.length;\n\n setSelectAll(\n updatedSelectedLocations?.length > 0 &&\n updatedSelectedLocations?.length === totalItemsOfAction\n );\n return updatedSelectedLocations;\n } else {\n const newReturnPayload = {\n id,\n account_number: accountNumber,\n customer_id: Number(urlCustomerId),\n products: [legacy_product_id],\n return_action: product_return_action || null,\n return_location_token: return_location || null,\n };\n\n setNewPayload((prevPayload: any) => [...prevPayload, newReturnPayload]);\n\n const updatedSelectedLocations = [\n ...prevSelectedLocations,\n {\n id,\n return_location,\n return_location_name,\n product_return_action,\n },\n ];\n\n const targetAction = product_return_action;\n const totalItemsOfAction = returnData?.filter(\n (loc: any) =>\n isSelectableItem(loc) && loc?.product_return_action === targetAction\n )?.length;\n\n setSelectAll(updatedSelectedLocations?.length === totalItemsOfAction);\n return updatedSelectedLocations;\n }\n });\n };\n\n useEffect(() => {\n if (newpayload?.length === 0) {\n setGrouped([]);\n return;\n }\n\n const groupedPayload = newpayload?.reduce((acc: any, item: any) => {\n const { return_location_token, id } = item;\n const key = return_location_token || `no_token_${id}`;\n\n if (!acc[key]) {\n acc[key] = {\n ...item,\n products: [],\n return_action: [],\n };\n }\n\n acc[key].products = [...acc[key].products, ...item.products];\n\n acc[key].return_action = Array.from(\n new Set([...acc[key].return_action, ...item.return_action])\n );\n\n return acc;\n }, {});\n const mergedPayload = Object.values(groupedPayload);\n setGrouped(mergedPayload);\n }, [newpayload]);\n return (\n <>\n <StyledTableWrapper className=\"fortables\">\n <StyledTable>\n <thead>\n <tr>\n {/* <th className=\"emailInvoiceCheckbox\">\n <Checkbox checked={selectAll} onChange={handleSelectAll} />\n </th> */}\n {returnData?.some((item: any) => isSelectableItem(item)) ? (\n <th className=\"emailInvoiceCheckbox\">\n <Checkbox checked={selectAll} onChange={handleSelectAll} />\n </th>\n ) : (\n <th></th>\n )}\n <th onClick={() => handleSort('location')}>\n <div className=\"sortIconClass\">\n Product Location {renderSortIcon('location')}\n </div>\n </th>\n <th onClick={() => handleSort('return_location_name')}>\n <div className=\"sortIconClass\">\n Return Location {renderSortIcon('return_location_name')}\n </div>\n </th>\n <th>Client</th>\n <th onClick={() => handleSort('recipient_name')}>\n <div className=\"sortIconClass\">\n Recipient {renderSortIcon('recipient_name')}\n </div>\n </th>\n <th>Return Action</th>\n <th>Code</th>\n <th>Description</th>\n <th>Part</th>\n <th onClick={() => handleSort('weight')}>\n <div className=\"sortIconClass\">\n Weight ({WEIGHT_UNIT}) {renderSortIcon('weight')}\n </div>\n </th>\n <th>CBM</th>\n <th onClick={() => handleSort('return_reason')}>\n <div className=\"sortIconClass\">\n Return Reason {renderSortIcon('return_reason')}\n </div>\n </th>\n <th>Collected</th>\n <th onClick={() => handleSort('collection_reason')}>\n <div className=\"sortIconClass\">\n Collection Reason {renderSortIcon('collection_reason')}\n </div>\n </th>\n <th className=\"emailInvoiceShare\">Labels</th>\n </tr>\n </thead>\n <tbody>\n {load ? (\n <tr>\n <td colSpan={14}>\n <Skeleton active />\n </td>\n </tr>\n ) : sortedData?.length === 0 ? (\n <tr>\n <td colSpan={14}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n sortedData?.map((item: any, index: any) => (\n <tr key={item.id}>\n <td>\n {isSelectableItem(item) ? (() => {\n const isDisabled =\n selectedReturnOrder?.length > 0 &&\n selectedReturnOrder[0]?.product_return_action !==\n item?.product_return_action;\n\n return (\n <Tooltip\n title={\n isDisabled\n ? 'Cannot select different return actions'\n : ''\n }\n >\n <span\n className={isDisabled ? 'disabled-wrapper' : ''}\n >\n <Checkbox\n className=\"custom-check\"\n disabled={isDisabled}\n checked={selectedReturnOrder.some(\n (selectedInvoice: any) =>\n selectedInvoice?.id === item?.id\n )}\n onChange={() =>\n handleSelectOrderReturn(\n item?.id,\n item?.return_location,\n item?.return_location_name,\n item?.product_return_action,\n item?.legacy_product_id\n )\n }\n />\n </span>\n </Tooltip>\n );\n })() : null}\n </td>\n\n <td>\n {item?.location !== null && item?.location !== undefined ? (\n item?.location\n ) : (\n <div className=\"awaiting\">Awaiting</div>\n )}\n </td>\n <td> {displayValueOrNA(item?.return_location_name)}</td>\n <td title={item?.client_name ?? ''}>\n {displayValueOrNA(item?.client_name)}\n </td>\n <td>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n paddingLeft: 0,\n }}\n >\n <NavLink to={`/orders/view/${item?.order_id}`}>\n {displayValueOrNA(item?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(item?.postcode)}\n </li>\n </ul>\n </td>\n <td>{displayValueOrNA(item?.product_return_action)}</td>\n <td>{displayValueOrNA(item?.code)}</td>\n <td>{displayValueOrNA(item?.description)}</td>\n <td>{displayValueOrNA(item?.part)}</td>\n <td>\n {displayValueOrNA(item?.weight)}{' '}\n {item?.weight && item?.weight !== null ? WEIGHT_UNIT : ''}\n </td>\n <td>{displayValueOrNA(item?.cube)}</td>\n <td>{displayValueOrNA(item?.return_reason)}</td>\n <td>\n {item?.collected_at\n ? format(new Date(item?.collected_at), 'dd/MM/yyyy')\n : 'UNKNOWN'}\n </td>\n\n <td>{displayValueOrNA(item?.collection_reason)}</td>\n <td>\n <ul className=\"actionbox\">\n <CustomDrop\n ref={dropdownRefParent}\n className={printToogle === index ? 'active' : ''}\n >\n <li\n className=\"shareIconContainer\"\n onClick={() => OpenDropDown(index)}\n >\n <PrinterIcon />\n <DownIcon />\n {printToogle === index && (\n <div ref={dropdownRef}>\n <PrintDropDownReturn\n legacyURL={item?.return_order_product_label}\n legacyProductID={item?.legacy_product_id}\n />\n </div>\n )}\n </li>\n </CustomDrop>\n </ul>\n </td>\n </tr>\n ))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </>\n );\n};\n\nexport default ReturnOrderTable;\n","import {\n OrderRecipientType,\n OrderRouteType,\n OrderServicesDetailType,\n OrdersType,\n} from './types';\n\nexport const capitalize = (input: string) => {\n if (!input) {\n return;\n }\n return input.replace(/\\b\\w/g, function(char) {\n return char.toUpperCase();\n });\n};\nimport { getProjectEnv } from '@bjsdistribution/dms-component-library';\n\nexport const getBaseUrlSymbol = (): string => {\n const basedEnv = getProjectEnv();\n return basedEnv === 'release_us' ? '$' : '£';\n};\nexport const handleKeyDownDebrief = (\n e: React.KeyboardEvent<HTMLInputElement>\n) => {\n // Allowed keys: numbers (0-9), '.'\n const allowedKeys = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'ArrowLeft',\n 'ArrowRight',\n ];\n\n // Allow backspace, delete and Tab keys\n if (e.key === 'Backspace' || e.key === 'Delete' || e.key === 'Tab') {\n return;\n }\n\n // Prevent input if key is not in allowedKeys\n if (!allowedKeys.includes(e.key)) {\n e.preventDefault();\n }\n};\nexport const RepackData = [\n {\n packaging_type: 'Recycled Cardboard',\n products: 'DWLK1006 - Altair TV stand for TVs up to 60\"(0067564578)',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n {\n packaging_type: 'Recycled Cardboard',\n products: 'DWLK1006 - Altair TV stand for TVs up to 60\"(0067564578)',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n {\n packaging_type: 'Recycled Cardboard',\n products: 'DWLK1006 - Altair TV stand for TVs up to 60\"(0067564578)',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n {\n packaging_type: 'Recycled Cardboard',\n products: 'DWLK1006 - Altair TV stand for TVs up to 60\"(0067564578)',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n];\nexport const DefectsData = [\n {\n action: 'Route',\n type: 'Product',\n primary_position: 'Right Side',\n secondary_position: 'Bottom Left',\n tertiary_position: 'Other',\n primary_details: 'Smashed Glass',\n secondary_details: 'Remote/Mechanism Does not Function',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n {\n action: 'Route',\n type: 'Product',\n primary_position: 'Right Side',\n secondary_position: 'Bottom Left',\n tertiary_position: 'Other',\n primary_details: 'Smashed Glass',\n secondary_details: 'Remote/Mechanism Does not Function',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n {\n action: 'Route',\n type: 'Product',\n primary_position: 'Right Side',\n secondary_position: 'Bottom Left',\n tertiary_position: 'Other',\n primary_details: 'Smashed Glass',\n secondary_details: 'Remote/Mechanism Does not Function',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n {\n action: 'Route',\n type: 'Product',\n primary_position: 'Right Side',\n secondary_position: 'Bottom Left',\n tertiary_position: 'Other',\n primary_details: 'Smashed Glass',\n secondary_details: 'Remote/Mechanism Does not Function',\n created_by: 'TST-002 Training Driver',\n date: '6/11/2024 11:26:05 AM',\n images: '',\n },\n];\n\nexport const getCookie = (name: string): string | null => {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n const lastPart = parts.pop();\n if (lastPart !== undefined) {\n return lastPart.split(';').shift() || null;\n }\n }\n return null;\n};\n\nexport const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Allow common shortcuts like Ctrl+V, Ctrl+C, Ctrl+A, etc.\n if (e.ctrlKey || e.metaKey) {\n if (\n e.key.toLowerCase() === 'v' || // Paste\n e.key.toLowerCase() === 'c' || // Copy\n e.key.toLowerCase() === 'x' || // Cut\n e.key.toLowerCase() === 'a' // Select All\n ) {\n return;\n }\n }\n\n // Allowed keys: numbers (0-9), '.', '-', '+'\n const allowedKeys = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n '-',\n '+',\n 'ArrowLeft',\n 'ArrowRight',\n ];\n\n // Allow backspace, delete, and Tab keys\n if (e.key === 'Backspace' || e.key === 'Delete' || e.key === 'Tab') {\n return;\n }\n\n const input = e.currentTarget;\n\n // Check if '+' is allowed only at the start and not duplicated\n if (e.key === '+') {\n // Prevent if '+' is not at the start or there is already a '+' in the input\n if (input.selectionStart !== 0 || input.value.includes('+')) {\n e.preventDefault();\n return;\n }\n }\n\n // Prevent input if key is not in allowedKeys\n if (!allowedKeys.includes(e.key)) {\n e.preventDefault();\n }\n};\n\nexport const generateObj = (keys: string[], sourceObj: any) => {\n const newObj: any = {};\n keys.forEach(key => {\n if (key in sourceObj) {\n newObj[key] = sourceObj[key];\n }\n });\n return newObj;\n};\n\nexport const findDifference = (obj1: any, obj2: any) => {\n // Check if obj1 or obj2 is null or undefined and return an empty object if so\n if (!obj1 || !obj2) {\n return {};\n }\n\n const diffKeys = Object.keys(obj1).reduce((acc: any, key) => {\n if (!(key in obj2) || obj1[key] !== obj2[key]) {\n acc.push(key);\n }\n return acc;\n }, []);\n\n Object.keys(obj2).forEach(key => {\n if (!(key in obj1) || obj1[key] !== obj2[key]) {\n if (!diffKeys.includes(key)) {\n diffKeys.push(key);\n }\n }\n });\n\n const newObj = generateObj(diffKeys, obj2);\n return newObj;\n};\n\nexport const filterObject = (obj: any, keysToRemove: any[]) => {\n const filteredObj = Object.keys(obj).reduce((acc: any, key: any) => {\n if (!keysToRemove.includes(key)) {\n acc[key] = obj[key];\n }\n return acc;\n }, {});\n\n return filteredObj;\n};\n\nexport const isObjectEmpty = (objectName: object) => {\n return Object.keys(objectName).length === 0;\n};\n\nexport const compareArrays = (arr: any, newArr: any) => {\n const required_output: any = [];\n newArr.forEach((newObj: any) => {\n arr.forEach((oldObj: any) => {\n if (!newObj.hasOwnProperty('id')) {\n required_output.push(newObj);\n } else {\n const newObjFiltered = {};\n if (newObj.id === oldObj.id) {\n Object.keys(newObj).forEach((key: any) => {\n if (\n key !== 'id' &&\n oldObj.hasOwnProperty(key) &&\n newObj[key] !== oldObj[key]\n ) {\n //@ts-ignore\n newObjFiltered[key] = newObj[key];\n }\n });\n const isEmpty = isObjectEmpty(newObjFiltered);\n if (!isEmpty) {\n const clone = { ...newObjFiltered, id: newObj.id };\n required_output.push(clone);\n }\n // const newObjFiltered = { id: newObj.id };\n }\n }\n });\n });\n return required_output;\n};\n\nexport const compareOrderDetailsStates = (\n oldData: OrdersType,\n newData: OrdersType\n) => {\n const {\n order_recipient: oldOrderRecipient,\n order_routes: oldOrderRoutes,\n order_services_detail: oldOrderServicesDetail,\n ...oldRequiredData\n } = oldData;\n const {\n order_recipient: newOrderRecipient,\n order_routes: newOrderRoutes,\n order_services_detail: newOrderServicesDetail,\n ...newRequiredData\n } = newData;\n\n const payload: OrdersType = findDifference(oldRequiredData, newRequiredData);\n\n const payloadWithId = { ...payload, id: oldData.id };\n\n const payloadOrderRecipient: OrderRecipientType = findDifference(\n oldOrderRecipient,\n newOrderRecipient\n );\n\n const payloadOrderRoutes: OrderRouteType = findDifference(\n oldOrderRoutes,\n newOrderRoutes\n );\n\n const payloadOrderServicesDetail: OrderServicesDetailType = findDifference(\n oldOrderServicesDetail,\n newOrderServicesDetail\n );\n\n const finalPayload = {\n ...payloadWithId,\n ...(!isObjectEmpty(payloadOrderRecipient) && {\n order_recipient: payloadOrderRecipient,\n }),\n ...(!isObjectEmpty(payloadOrderRoutes) && {\n order_routes: payloadOrderRoutes,\n }),\n ...(!isObjectEmpty(payloadOrderServicesDetail) && {\n order_services_detail: payloadOrderServicesDetail,\n }),\n };\n\n return finalPayload;\n};\n\nexport const sanitizeInput = (value: string): string => {\n return value.trim() === '' ? '' : value;\n};\nexport const getEnvironment = ():\n | 'development'\n | 'release_us'\n | 'release_uk'\n | 'staging' => {\n return getProjectEnv() as any;\n};\n","import React from 'react';\nimport { AntTable } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport { DefectsData } from '../utils';\nconst DefectsModal = () => {\n const options = [\n { value: 'bjsCouriers', label: 'BJS COURIERS' },\n { value: 'bjsSales', label: 'BJS SALES' },\n { value: 'test', label: 'TEST' },\n ];\n\n const columns = [\n { key: 'action', title: 'Action' },\n { key: 'type', title: 'Type' },\n { key: 'primary_position', title: 'Primary Position' },\n { key: 'secondary_position', title: 'Secondary Position' },\n { key: 'tertiary_position', title: 'Tertiary Position' },\n { key: 'primary_details', title: 'Primary Details' },\n { key: 'secondary_details', title: 'Secondary Details' },\n { key: 'created_by', title: 'Created By' },\n { key: 'date', title: 'Date' },\n { key: 'images', title: 'Images' },\n ];\n return (\n <>\n <GLobalPopupContent>\n <StyledConatiner>\n <AntTable\n columns={columns}\n data={DefectsData}\n selectOptions={options}\n onSelectChange={(value: any, record: any) =>\n console.log('Selected value:', value, 'for record:', record)\n }\n />\n </StyledConatiner>\n </GLobalPopupContent>\n </>\n );\n};\nconst StyledConatiner = styled.div`\n /* tex: nowrap; */\n`;\nexport default DefectsModal;\nconst GLobalPopupContent = styled.div``;\n","import { Alert, Checkbox } from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n useFinalPayload,\n useGroupedPayload,\n useSelectedConfirmLoc,\n useSelectedOrders,\n} from '../../store';\nimport { displayValueOrNA } from '../../order-daily-overview/shared/utlis';\n\nconst CreateReturnModal = () => {\n const [selectedlocation, setSelectedLocations] = useSelectedConfirmLoc();\n const [selectedReturnOrder] = useSelectedOrders();\n const [groupedPayload] = useGroupedPayload();\n const [, setNew] = useFinalPayload();\n\n const handleSelectLocations = (id: number) => {\n setSelectedLocations((prevSelectedLocations: number[]) => {\n const isSelected = prevSelectedLocations?.includes(id);\n\n if (isSelected) {\n return prevSelectedLocations?.filter(selectedId => selectedId !== id);\n } else {\n return [...prevSelectedLocations, id];\n }\n });\n };\n\n const uniqueLocations = selectedReturnOrder?.reduce((acc, current) => {\n const x = acc.find(\n (item: any) => item.return_location === current.return_location\n );\n if (!x) {\n acc.push(current);\n }\n return acc;\n }, []);\n\n useEffect(() => {\n if (groupedPayload?.length > 0 && selectedlocation?.length > 0) {\n const matchedItems = groupedPayload?.filter((item: any) =>\n selectedlocation.includes(item.id)\n );\n\n if (matchedItems.length > 0) {\n const finalPayload = matchedItems?.map(({ id, ...rest }: any) => rest);\n setNew(finalPayload);\n }\n }\n }, [selectedlocation]);\n\n return (\n <>\n <Wrapper>\n <Alert\n onClose={() => { }}\n description=\"\"\n type=\"info\"\n title=\"Do you wish to proceed?\"\n showOkButton={false}\n />\n <Container>\n <ul style={{ listStyle: 'none', padding: 0 }}>\n {uniqueLocations?.map((returnLoc: any) => {\n return (\n <li\n key={returnLoc.id}\n style={{\n marginBottom: '8px',\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Checkbox\n checked={selectedlocation?.includes(returnLoc.id)}\n onChange={() => handleSelectLocations(returnLoc.id)}\n />\n <StyledText style={{ marginLeft: '8px' }}>\n {displayValueOrNA(returnLoc?.return_location_name)}\n </StyledText>\n </li>\n );\n })}\n </ul>\n </Container>\n </Wrapper>\n </>\n );\n};\n\nconst StyledText = styled.div`\n color: #8d8f90;\n font-family: Poppins;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n`;\n\nconst Container = styled.div``;\n\nexport const Wrapper = styled.div`\n display: flex;\n padding: 15px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n align-self: stretch;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n`;\n\n\n\nexport default CreateReturnModal;\n","import React, { useEffect, useState } from 'react';\nimport {\n AntModal,\n useApiHook,\n useAxios,\n Checkbox,\n} from '@bjsdistribution/dms-component-library';\nimport { useAtom } from 'jotai';\nimport { countReducerAtom, useDeleteProdsID, usefetchAgain } from '../store';\n\nimport DefectsModal from './DefectsModal';\nimport { ApiResponse } from '../types';\nimport CreateReturnModal from './CreateReturnModal';\nimport {\n useFinalPayload,\n useGroupedPayload,\n useNewReturnPayload,\n usePostLoading,\n useSelectAll,\n useSelectedConfirmLoc,\n useSelectedOrders,\n useSendEmailNotification,\n} from '../../store';\nimport { notification } from 'antd';\nimport { useNavigate } from 'react-router-dom';\n\nconst ModalManager = () => {\n const [popupName, dispatch] = useAtom(countReducerAtom);\n const [hasStartedLoading, setHasStartedLoading] = useState(false);\n const [selectedRows] = useDeleteProdsID();\n const [, setIsFormValid] = useState(false);\n const [newGrouped] = useFinalPayload();\n const [postLoading, SetPostLoading] = usePostLoading();\n const [, setSelectedReturnOrder] = useSelectedOrders();\n const [forDisabledCheck, setCheck] = useSelectedConfirmLoc();\n const [, setNewPayload] = useNewReturnPayload();\n const [, setGrouped] = useGroupedPayload();\n const [, setSelectAll] = useSelectAll();\n const [, setCallForFetch] = usefetchAgain();\n const [\n sendEmailNotification,\n setSendEmailNotification,\n ] = useSendEmailNotification();\n const navigate = useNavigate();\n\n const closeModal = () => {\n dispatch({ type: 'close' });\n setSendEmailNotification(true);\n };\n\n const validateForm = () => {\n return selectedRows?.length > 0;\n };\n\n useEffect(() => {\n setIsFormValid(validateForm());\n }, [selectedRows]);\n\n // Confirm return popup\n const {\n data: response,\n setShouldPerformAction,\n loading: confirmLoading,\n error: apiError,\n setError,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/return/create/`,\n method: 'POST',\n body: newGrouped,\n performAction: false,\n });\n\n useEffect(() => {\n SetPostLoading(confirmLoading);\n }, [confirmLoading]);\n\n const handleConfirmReturn = () => {\n if (newGrouped?.length > 0) {\n setShouldPerformAction(true);\n setCallForFetch(true);\n SetPostLoading(confirmLoading);\n }\n dispatch({ type: 'close' });\n };\n\n const { fetchData: callSendEmail } = useAxios({\n endpoint: '/v1/return/create-csv-and-send-email/',\n method: 'POST',\n });\n\n useEffect(() => {\n if (confirmLoading) {\n setHasStartedLoading(true);\n }\n }, [confirmLoading]);\n\n useEffect(() => {\n if (!hasStartedLoading) return;\n if (confirmLoading || postLoading) return;\n\n // @ts-ignore\n if (apiError || (response && (response?.code == 500 || response?.code == 400))) {\n setHasStartedLoading(false);\n\n // @ts-ignore\n const errorMessage = apiError?.message || response?.message || 'Failed to create return';\n notification.error({\n message: 'Failure',\n description: errorMessage,\n });\n dispatch({ type: 'close' });\n setSendEmailNotification(true);\n setSelectedReturnOrder([]);\n setCheck([]);\n setNewPayload([]);\n setGrouped([]);\n setSelectAll(false);\n setShouldPerformAction(false);\n setError(null);\n // @ts-ignore\n } else if (response?.code === 201 || response?.code === 200) {\n setHasStartedLoading(false);\n notification.success({\n message: 'Success',\n // @ts-ignore\n description: `${response?.message}`,\n });\n dispatch({ type: 'close' });\n //@ts-ignore\n const orderIdsString = response?.data?.[0]?.order_id;\n\n const emailApiPayload = {\n // order_ids: response?.data ? response.data.map((item: any) => item?.order_id ?? 0) : [],\n gsit_order_ids: response?.data\n ? response.data.map((item: any) => item?.order_id ?? 0)\n : [],\n };\n\n // send to API\n if (sendEmailNotification) {\n callSendEmail({ payload: emailApiPayload });\n }\n if (orderIdsString) {\n navigate(`/orders/view/return/?order=${orderIdsString}`);\n } else {\n navigate('/orders/view/return/overview');\n }\n\n // Reset email notification state back to true\n setSendEmailNotification(true);\n setSelectedReturnOrder([]);\n setCheck([]);\n setNewPayload([]);\n setShouldPerformAction(false);\n setSelectAll(false);\n setError(null);\n\n // for local\n // navigate('/overview');\n\n // for dev\n //navigate('/orders/view/return/overview');\n }\n }, [postLoading, confirmLoading, hasStartedLoading, response]);\n\n return (\n <>\n {popupName?.state === 'create-return' && (\n <>\n <AntModal\n openStatus={popupName?.state == 'create-return' ? true : false}\n closeModal={() => closeModal()}\n PopupHeader={{\n heading: 'CONFIRM RETURN',\n subHeading: '',\n }}\n PopupFooter={{\n btns: [\n {\n name: (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n marginRight: '16px',\n gap: '8px',\n }}\n onClick={e => e.stopPropagation()}\n >\n <Checkbox\n checked={sendEmailNotification}\n onChange={() =>\n setSendEmailNotification(!sendEmailNotification)\n }\n />\n <span\n style={{\n color: '#8d8f90',\n fontFamily: 'Poppins',\n fontSize: '14px',\n fontWeight: 400,\n textTransform: 'none',\n }}\n >\n Send Email Notification\n </span>\n </div>\n ),\n btnStyle: '',\n type: 'button',\n },\n {\n name: 'Submit',\n btnStyle: 'rounded',\n onClick: handleConfirmReturn,\n type: 'button',\n disabled: forDisabledCheck.length === 0,\n },\n ],\n\n btnAlign: 'justifyEnd',\n }}\n BodyComponent={CreateReturnModal}\n width={800}\n classNameAdd={'globalPopup'}\n />\n </>\n )}\n\n {popupName?.state == 'defectsModal' && (\n <AntModal\n openStatus={popupName?.state == 'defectsModal' ? true : false}\n closeModal={closeModal}\n PopupHeader={{\n heading: 'DEliver - DWLK1006 - 00605',\n subHeading: 'ALtair TV stand for TVs up to 60',\n }}\n PopupFooter={{\n btns: [\n {\n name: '',\n btnStyle: '',\n type: '',\n },\n ],\n btnAlign: '',\n }}\n BodyComponent={DefectsModal}\n width={1504}\n classNameAdd={'globalPopup'}\n />\n )}\n </>\n );\n};\n\nexport default ModalManager;\n\n\n\n","import styled from 'styled-components';\n\nexport const StyledContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n padding: 0;\n max-width: 100%;\n margin-top: 11px;\n margin-bottom: 0;\n`;\n\nexport const StyledContentWrapper = styled.div`\n display: flex;\n gap: 12px;\n`;\n\nexport const StyledInfoBox = styled.div`\n border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #fff;\n color: #8e8a85;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n letter-spacing: 0.07px;\n padding: 6px 10px;\n`;\n\nexport const StyledLabel = styled.div`\n color: #8e8a85;\n\n font-size: 13px;\n font-weight: 400;\n line-height: 16px;\n display: flex;\n align-items: center;\n`;\n\nexport const StyledDropdownData = styled.select`\n font-size: 0.875rem;\n padding: 6px 10px;\n background-color: white;\n border: 1px solid #e2e8f0;\n border-radius: 9999px;\n color: #71717a;\n`;\n\nexport const StyledPaginationWrapper = styled.div`\n display: flex;\n gap: 0;\n background-color: white;\n border: 1px solid rgba(208, 213, 221, 0.5);\n border-radius: 9999px;\n`;\n\nexport const StyledPaginationItem = styled.button<{ active?: boolean }>`\n background: ${({ active }) =>\n active ? 'rgba(208, 213, 221, 0.80)' : 'white'};\n color: ${({ active }) => (active ? 'black' : 'black')};\n border: none;\n border-left: 1px solid rgba(208, 213, 221, 0.5);\n padding: 0.5em 1em;\n border-radius: 0;\n cursor: pointer;\n &:hover {\n background: rgba(208, 213, 221, 0.8);\n color: #000;\n }\n &:disabled {\n background: #f0f0f0;\n cursor: not-allowed;\n }\n &:first-child {\n border-radius: 100px;\n padding: 0 1em;\n display: flex;\n align-items: center;\n }\n &:last-child {\n border-radius: 0 100px 100px 0;\n padding: 0 1em;\n display: flex;\n align-items: center;\n }\n`;\nexport const StyledDropdown = styled.div`\n position: relative;\n display: inline-block;\n`;\nexport const StyledPaginationIcon = styled.img`\n width: 1.5rem;\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n`;\n","import React from 'react'\n\nconst PrevIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M11.03 8.52997C11.1037 8.46131 11.1628 8.37851 11.2038 8.28651C11.2448 8.19451 11.2669 8.0952 11.2686 7.99449C11.2704 7.89379 11.2519 7.79376 11.2142 7.70037C11.1765 7.60698 11.1203 7.52215 11.0491 7.45093C10.9779 7.37971 10.893 7.32357 10.7996 7.28585C10.7063 7.24813 10.6062 7.2296 10.5055 7.23138C10.4048 7.23316 10.3055 7.2552 10.2135 7.29619C10.1215 7.33718 10.0387 7.39628 9.97005 7.46997L5.97005 11.47C5.90026 11.5395 5.84489 11.6221 5.80711 11.713C5.76933 11.804 5.74988 11.9015 5.74988 12C5.74988 12.0985 5.76933 12.196 5.80711 12.2869C5.84489 12.3779 5.90026 12.4605 5.97005 12.53L9.97005 16.53C10.0387 16.6037 10.1215 16.6628 10.2135 16.7038C10.3055 16.7447 10.4048 16.7668 10.5055 16.7686C10.6062 16.7703 10.7063 16.7518 10.7996 16.7141C10.893 16.6764 10.9779 16.6202 11.0491 16.549C11.1203 16.4778 11.1765 16.393 11.2142 16.2996C11.2519 16.2062 11.2704 16.1062 11.2686 16.0054C11.2669 15.9047 11.2448 15.8054 11.2038 15.7134C11.1628 15.6214 11.1037 15.5386 11.03 15.47L8.31005 12.75H18C18.199 12.75 18.3897 12.671 18.5304 12.5303C18.671 12.3896 18.75 12.1989 18.75 12C18.75 11.8011 18.671 11.6103 18.5304 11.4696C18.3897 11.329 18.199 11.25 18 11.25H8.31005L11.03 8.52997Z\" fill=\"#6A7378\"/>\n </svg>\n )\n}\n\nexport default PrevIcon","import React from 'react'\n\nconst NextIcon = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M13.47 8.53003C13.3375 8.38785 13.2654 8.19981 13.2688 8.00551C13.2723 7.81121 13.351 7.62582 13.4884 7.48841C13.6258 7.35099 13.8112 7.27228 14.0055 7.26885C14.1998 7.26543 14.3878 7.33755 14.53 7.47003L18.53 11.47C18.6705 11.6107 18.7493 11.8013 18.7493 12C18.7493 12.1988 18.6705 12.3894 18.53 12.53L14.53 16.53C14.4613 16.6037 14.3785 16.6628 14.2865 16.7038C14.1945 16.7448 14.0952 16.7668 13.9945 16.7686C13.8938 16.7704 13.7938 16.7519 13.7004 16.7142C13.607 16.6764 13.5222 16.6203 13.451 16.5491C13.3797 16.4778 13.3236 16.393 13.2859 16.2996C13.2482 16.2062 13.2296 16.1062 13.2314 16.0055C13.2332 15.9048 13.2552 15.8055 13.2962 15.7135C13.3372 15.6215 13.3963 15.5387 13.47 15.47L16.19 12.75H6.5C6.30109 12.75 6.11032 12.671 5.96967 12.5304C5.82902 12.3897 5.75 12.1989 5.75 12C5.75 11.8011 5.82902 11.6104 5.96967 11.4697C6.11032 11.329 6.30109 11.25 6.5 11.25H16.19L13.47 8.53003Z\" fill=\"#6A7378\"/>\n </svg>\n )\n}\n\nexport default NextIcon","import React from 'react';\nimport {\n StyledContainer,\n StyledContentWrapper,\n // StyledDropdown,\n StyledInfoBox,\n StyledLabel,\n StyledPaginationItem,\n StyledPaginationWrapper,\n // StyledDropdownData,\n} from './PaginationStyle';\nimport PrevIcon from '../../../assets/icons/PrevIcon';\nimport NextIcon from '../../../assets/icons/NextIcon';\nimport { useAtom } from 'jotai';\nimport { Select } from 'antd';\nimport { filtersReducerAtom } from '../header-filters/filterStore';\n\nconst PAGE_SIZE_OPTIONS = [50, 100, 150];\n\nconst MAX_PAGES_TO_SHOW = 5;\n\nconst Pagination: React.FC<any> = ({\n currentPage,\n totalItems,\n itemsPerPage,\n onPageChange,\n onItemsPerPageChange,\n}) => {\n const [, dispatch] = useAtom(filtersReducerAtom);\n\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n const startItem = (currentPage - 1) * itemsPerPage + 1;\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\n\n const handlePageChange = (page: number) => {\n if (page >= 1 && page <= totalPages) {\n dispatch({\n type: 'SET_PAGE',\n payload: page,\n });\n\n onPageChange(page);\n }\n };\n\n const handleItemsPerPageChange = (value: number) => {\n const newItemsPerPage = value;\n dispatch({\n type: 'SET_PERPAGE',\n payload: newItemsPerPage,\n });\n\n // Reset to the first page\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n\n onPageChange(1);\n onItemsPerPageChange(newItemsPerPage);\n };\n\n const getPageNumbers = (\n currentPage: number,\n totalPages: number\n ): number[] => {\n const pageNumbers: number[] = [1]; // Always show the first page\n\n if (currentPage > MAX_PAGES_TO_SHOW / 2 + 1) {\n pageNumbers.push(-1); // Ellipsis\n }\n\n const startPage = Math.max(\n 2,\n Math.min(currentPage - 1, totalPages - MAX_PAGES_TO_SHOW + 2)\n );\n const endPage = Math.min(startPage + MAX_PAGES_TO_SHOW - 3, totalPages - 1);\n for (let i = startPage; i <= endPage; i++) {\n pageNumbers.push(i);\n }\n\n if (currentPage < totalPages - MAX_PAGES_TO_SHOW / 2 - 1) {\n pageNumbers.push(-1); // Ellipsis\n }\n\n if (totalPages > 1) {\n pageNumbers.push(totalPages); // Always show the last page\n }\n\n return pageNumbers;\n };\n\n return (\n <StyledContainer>\n <StyledContentWrapper>\n <StyledInfoBox>\n Showing {startItem}-{endItem} from {totalItems}\n </StyledInfoBox>\n <StyledLabel>Row on Page</StyledLabel>\n <Select\n value={itemsPerPage}\n onChange={handleItemsPerPageChange}\n style={{ width: 75 }}\n >\n {PAGE_SIZE_OPTIONS.map(option => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n <StyledPaginationWrapper>\n <StyledPaginationItem\n onClick={() => handlePageChange(currentPage - 1)}\n >\n <PrevIcon />\n </StyledPaginationItem>\n {getPageNumbers(currentPage, totalPages).map((pageNumber, index) => (\n <StyledPaginationItem\n key={index}\n active={pageNumber === currentPage}\n onClick={() => handlePageChange(pageNumber)}\n >\n {pageNumber === -1 ? '...' : pageNumber}\n </StyledPaginationItem>\n ))}\n <StyledPaginationItem\n onClick={() => handlePageChange(currentPage + 1)}\n >\n <NextIcon />\n </StyledPaginationItem>\n </StyledPaginationWrapper>\n </StyledContentWrapper>\n </StyledContainer>\n );\n};\n\nexport default Pagination;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\n// import RouterHeader from '../header/route-header/RouterHeader';\nimport HeaderFilter from '../header-filters/HeaderFilter';\n\nimport ReturnFilter from './return-orders-filters/ReturnFilter';\nimport ReturnOrderTable from './return-orders-filters/ReturnOrderTable';\nimport ModalManager from '../../order-view/modalsPopup/ModalManager';\nimport { useItemsPerPage, UsePaginationData } from '../store/store';\nimport Pagination from '../table-view/Pagination';\nimport { useCustomerData } from '../../store';\nimport { DocumentTitle } from '@bjsdistribution/dms-component-library';\n// import { useLocation } from 'react-router-dom';\n\nconst ReturnTable = () => {\n const [paginationObj] = UsePaginationData();\n const [, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useItemsPerPage();\n const [customers] = useCustomerData();\n // const location = useLocation();\n const { page, total } = paginationObj;\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n };\n const handleItemsPerPageChange = (itemsPerPage: number) => {\n setItemsPerPage(itemsPerPage);\n };\n\n // useEffect(() => {\n // const queryParams = new URLSearchParams(location.search);\n\n // const clientId = queryParams.get('customerId');\n // }, [location]);\n\n const queryParams = new URLSearchParams(location.search);\n\n const customerId = queryParams.get('customerId');\n\n const selectedCustomer = customers?.find(\n (customer: any) => customer?.customer_id?.toString() === customerId\n );\n\n const customerName = selectedCustomer?.customer_name;\n\n const docTitle = `${customerName}: Return Product`;\n\n return (\n <div>\n <DashBoardWrapper>\n {/* <RouterHeader /> */}\n <DocumentTitle title={docTitle} />\n <div className=\"Tableconatiner\">\n <HeaderFilter />\n <Container>\n <ReturnFilter />\n <ReturnOrderTable />\n {total > 0 && (\n <Pagination\n currentPage={page}\n totalItems={total}\n itemsPerPage={itemsPerPage}\n onPageChange={handlePageChange}\n onItemsPerPageChange={handleItemsPerPageChange}\n ></Pagination>\n )}\n </Container>\n </div>\n </DashBoardWrapper>\n <ModalManager />\n </div>\n );\n};\nconst Container = styled.div`\n position: relative;\n top: -46px;\n`;\nconst DashBoardWrapper = styled.section`\n .Tableconatiner {\n border-radius: 12px;\n background: #fff;\n box-shadow: -2px 0px 12px 0px rgba(56, 71, 109, 0.1);\n display: block;\n padding: 15px 20px;\n }\n .headerWrap,\n .tableData,\n .styleCovered {\n transition: all ease 0.5s;\n }\n &.stickyTableHead {\n h2 {\n font-size: 21px;\n }\n .headerWrap {\n height: 84px;\n padding: 10px;\n border-radius: 0px 0px 15px 15px;\n > div {\n position: relative;\n z-index: 10;\n }\n }\n .styleCovered {\n margin-top: -32px;\n width: 67%;\n float: right;\n gap: 5px;\n padding-right: 11px;\n\n li {\n padding: 4px 10px 5px 5px;\n gap: 5px;\n .svgCover {\n width: 30px;\n height: 30px;\n svg {\n height: auto;\n width: 58%;\n }\n }\n .countDigit {\n font-size: 19px;\n }\n }\n .countMess {\n font-size: 13px;\n }\n }\n .dmsBulkFilter {\n min-height: unset;\n gap: 4px;\n > div {\n padding: 4px 12px;\n label {\n font-size: 11px;\n }\n }\n }\n\n .StyledFilterList {\n gap: 4px;\n li {\n height: 29px;\n padding: 3px 8px;\n gap: 4px;\n .StyledFilterBtnIcon {\n width: 20px;\n height: 20px;\n svh {\n width: 10px;\n height: auto;\n }\n }\n .StyledFilterBtnLabel {\n font-size: 13px;\n }\n }\n }\n .StyledFilterLabel {\n padding-left: 10px;\n span {\n font-size: 13px;\n }\n }\n .cardcontainer.tableData {\n max-height: calc(100vh - 310px);\n min-height: calc(100vh - 310px);\n }\n\n .tableData {\n max-height: calc(100vh - 320px);\n min-height: calc(100vh - 320px);\n\n margin-top: 8px;\n thead {\n position: sticky;\n top: 0;\n z-index: 9;\n th {\n font-size: 13px;\n padding: 2px 15px;\n }\n }\n }\n }\n`;\n\nexport default ReturnTable;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { optionsClientPortPrint, optionsPrint } from '../../common/fakedata';\nimport { PrintIconMap } from '../utlis';\nimport { useClientPortal } from '../../../store';\n\nconst PrintDropDown = ({\n legacyProductId,\n}: {\n legacyProductId: Record<string, any>;\n}) => {\n const downloadFiles = (type: string) => {\n let url: string | undefined;\n\n if (type) {\n url = legacyProductId[type];\n }\n\n if (url) {\n window.open(url, '_blank');\n } else {\n console.log('URL not available for', type);\n }\n };\n const [clientPortal] = useClientPortal();\n const printOptions = clientPortal ? optionsClientPortPrint : optionsPrint;\n return (\n <OptionsList>\n {printOptions?.map((item: any, index: any) => {\n const IconComponent = PrintIconMap[item.icon];\n const isDisabled = !legacyProductId[item.type];\n\n return (\n <OptionsListLi\n key={index}\n onClick={() => !isDisabled && downloadFiles(item.type)}\n disabled={isDisabled}\n >\n {IconComponent && <IconComponent />}\n {item.label}\n </OptionsListLi>\n );\n })}\n </OptionsList>\n );\n};\n\nexport default PrintDropDown;\n\nexport const OptionsList = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n box-sizing: border-box;\n border-radius: 6px;\n border: 1px solid rgba(224, 226, 231, 0.5);\n background: #fff;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n width: 177px;\n padding: 5px 1px 3px 1px;\n position: absolute;\n top: 34px;\n right: 0;\n z-index: 99;\n min-width: 194px;\n`;\n\nexport const OptionsListLi = styled.li<{ disabled?: boolean }>`\n border-bottom: 1px solid #f0f2f2;\n padding: 8px 10px;\n display: flex;\n gap: 12px;\n align-items: center;\n font-size: 13px;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n color: ${({ disabled }) => (disabled ? '#d3d3d3' : 'inherit')};\n &:last-child {\n border: none;\n }\n &:hover {\n background-color: ${({ disabled }) =>\n disabled ? 'transparent' : '#f0f0f0'};\n }\n`;\n","import { Empty, notification, Select } from 'antd';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Skeleton } from 'antd';\n// import { useSelectedOrders } from '../../../store';\nimport { useOrderId, useReturnAfterOrderData } from '../../../order-view/store';\nimport { EmptyDataContainer } from '../../table/table-data/styles';\nimport PrinterIcon from '../../../../assets/icons/PrinterIcon';\nimport DownIcon from '../../../../assets/icons/DownIcon';\nimport {\n StyledTable,\n StyledTableWrapper,\n CustomDrop,\n} from '../../return-order-table/return-orders-filters/returnstyles';\nimport { useLoading, usePrintOptionTOggle } from '../../store/store';\nimport { NavLink } from 'react-router-dom';\nimport { displayValueOrNA, formatDate } from '../../shared/utlis';\nimport PrintDropDown from '../../shared/elements/PrintDropDown';\nimport {\n useAssignData,\n useAssignPayload,\n useCallApiAgain,\n} from '../../../store';\nimport styled from 'styled-components';\nimport { useApiHook } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../common/interface';\nimport CaretDownFilledIcon from '../../../../common/CaretDownFilledIcon';\nimport SortIcon from '../../../../common/SortIcon';\nimport { WEIGHT_UNIT } from '../../../../common/utils';\n\nconst OrderTable = () => {\n // const [, setSelectedReturnOrder] = useSelectedOrders();\n // const [selectAll, setSelectAll] = useState(false);\n const dropdownRefParent = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [printToogle, setPrintToggle] = usePrintOptionTOggle();\n const [assignData] = useAssignData();\n const [, setOrderId] = useOrderId();\n const [returnAfterOrder] = useReturnAfterOrderData();\n const [assignPayload, setAssignPayload] = useAssignPayload();\n const [, setAssign] = useState<boolean>(false);\n const [, setCallAPi] = useCallApiAgain();\n const [loading] = useLoading();\n\n //sorting\n const [sortConfig, setSortConfig] = useState<{\n key: string;\n direction: 'asc' | 'desc';\n } | null>(null);\n\n const handleSort = (key: string) => {\n setSortConfig((prev: any) => {\n if (prev?.key === key && prev.direction === 'asc') {\n return { key, direction: 'desc' };\n }\n return { key, direction: 'asc' };\n });\n };\n\n const sortedData = useMemo(() => {\n if (!returnAfterOrder || !sortConfig) return returnAfterOrder;\n\n const { key, direction } = sortConfig;\n return [...returnAfterOrder].sort((a, b) => {\n const valueA = a[key];\n const valueB = b[key];\n\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n return direction === 'asc' ? valueA - valueB : valueB - valueA;\n }\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n return direction === 'asc'\n ? valueA.localeCompare(valueB)\n : valueB.localeCompare(valueA);\n }\n return 0;\n });\n }, [returnAfterOrder, sortConfig]);\n\n const renderSortIcon = (columnKey: string) => {\n if (!sortConfig || sortConfig.key !== columnKey) {\n return <SortIcon />;\n }\n return sortConfig.direction === 'asc' ? (\n <CaretDownFilledIcon />\n ) : (\n <CaretDownFilledIcon />\n );\n };\n\n const OpenDropDown = (index: number) => {\n setPrintToggle(prevIndex => (prevIndex === index ? null : index));\n };\n\n // Close dropdown outside click\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setPrintToggle(null);\n }\n };\n\n // const handleSelectAll = (e: any) => {\n // setSelectAll(e.target.checked);\n // if (e.target.checked) {\n // setSelectedReturnOrder(\n // returnAfterOrder.map((e: any) => ({\n // id: e.id,\n // status_id: 3,\n // }))\n // );\n // } else {\n // setSelectedReturnOrder([]);\n // }\n // };\n\n // const handleSelectInvoice = (id: any) => {\n // setSelectedReturnOrder((prevSelectedInvoices: any) => {\n // const isSelected = prevSelectedInvoices?.some(\n // (item: any) => item.id === id\n // );\n\n // if (isSelected) {\n // return prevSelectedInvoices.filter((items: any) => items.id !== id);\n // } else {\n // return [...prevSelectedInvoices, { id, status_id: 3 }];\n // }\n // });\n // };\n\n const getStatusClass = (status: string) => {\n switch (status) {\n case 'Cancelled':\n return { color: '#E95252', background: 'rgba(233, 82, 82, 0.15)' };\n case 'On Hold':\n return { color: '#F4A503', background: '#FFF1D6' };\n case 'Sub-Contracted':\n return { color: '#F4A503', background: '#FFF1D6' };\n case 'Awaiting route':\n return { color: '#845ADF', background: 'rgba(132, 90, 223, 0.15)' };\n case 'Awaiting':\n return { color: '#845ADF', background: 'rgba(132, 90, 223, 0.15)' };\n case 'Completed':\n return {\n color: '#1F9254',\n background: 'rgba(41, 204, 106, 0.15)',\n };\n case 'Outstanding':\n return { color: '#FF9900', background: 'rgba(255, 153, 0, 0.15)' };\n case 'Routed':\n return { color: '#6396E5', background: 'rgba(99, 150, 229, 0.15)' };\n default:\n return { color: '#000', background: '#fff' };\n }\n };\n\n // API for Assign\n const {\n data: actionResponse,\n setShouldPerformAction: setAssignAction,\n error: apiError,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `return_orders/update/assign/`,\n method: 'PUT',\n body: [assignPayload],\n performAction: false,\n });\n\n //client options\n const assignOptions = assignData?.map((option: any) => ({\n label: option?.type?.charAt(0)?.toUpperCase() + option?.type?.slice(1),\n value: option?.bjs_delivery,\n }));\n\n const handleAssignPayload = (Id: number, value: boolean) => {\n setCallAPi(false);\n setAssign(value);\n setAssignPayload({\n ...assignPayload,\n return_order_id: Id,\n bjs_delivery: value,\n });\n setAssignAction(true);\n };\n\n useEffect(() => {\n //@ts-ignore\n if (actionResponse?.code === 200) {\n setCallAPi(true);\n notification.success({\n message: 'Success',\n // @ts-ignore\n description: `${actionResponse?.message}`,\n });\n // @ts-ignore\n } else if (apiError?.detail) {\n notification.error({\n message: 'Failure',\n // @ts-ignore\n description: `${apiError?.detail[0]?.msg}`,\n });\n }\n }, [actionResponse, apiError]);\n\n return (\n <>\n <StyledTableWrapper className=\"fortables\">\n <StyledTable>\n <thead>\n <tr>\n {/* <th className=\"emailInvoiceCheckbox\">\n <Checkbox checked={false} />\n </th> */}\n <th onClick={() => handleSort('created_at')}>\n <div className=\"sortIconClass\">\n Created {renderSortIcon('created_at')}\n </div>\n </th>\n <th onClick={() => handleSort('return_location_name')}>\n <div className=\"sortIconClass\">\n Return Location {renderSortIcon('return_location_name')}\n </div>\n </th>\n <th>Pick Up Location</th>\n <th> Client</th>\n <th onClick={() => handleSort('recipient_name')}>\n <div className=\"sortIconClass\">\n Recipient {renderSortIcon('recipient_name')}\n </div>\n </th>\n <th>Consignment</th>\n <th>Return Order No</th>\n <th> Total Parts</th>\n <th> Total Orders</th>\n <th onClick={() => handleSort('weight')}>\n <div className=\"sortIconClass\">\n Total Weight ({WEIGHT_UNIT}) {renderSortIcon('weight')}\n </div>\n </th>\n <th onClick={() => handleSort('cube')}>\n <div className=\"sortIconClass\">\n Total CBM {renderSortIcon('cube')}\n </div>\n </th>\n <th>Assign</th>\n <th>Status</th>\n <th className=\"emailInvoiceShare\">Labels</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={16}>\n <Skeleton active />\n </td>\n <td colSpan={16}></td>\n </tr>\n ) : sortedData?.length === 0 ? (\n <tr>\n <td colSpan={16}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n sortedData?.map((item: any, index: any) => {\n const statusMapping: any = {\n cancelled: 'Cancelled',\n 'on hold': 'On Hold',\n SC: 'Sub-Contracted',\n 'awaiting route': 'Awaiting',\n 'awaiting confirmation': 'Awaiting',\n complete: 'Completed',\n outstanding: 'Outstanding',\n routed: 'Routed',\n failed: 'Failed',\n };\n const status = statusMapping[item?.status_value] || 'Unknown';\n const statusClass = getStatusClass(status);\n\n return (\n <tr key={item.id}>\n {/* <td>\n <Checkbox\n checked={false}\n // onChange={() => handleSelectInvoice(item.id)}\n />\n </td> */}\n <td>{formatDate(new Date(item?.created_at))}</td>\n <td>{displayValueOrNA(item?.return_location_name)}</td>\n\n <td>\n {item?.locations?.length\n ? item?.locations.join(', ')\n : 'N/A'}\n </td>\n\n <td>{displayValueOrNA(item?.customer_name)}</td>\n\n <td onClick={() => setOrderId(item.id)}>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n paddingLeft: 0,\n }}\n >\n <NavLink to={`../${item.id}`}>\n {displayValueOrNA(item?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(item?.postcode)}\n </li>\n </ul>\n </td>\n\n <td>{displayValueOrNA(item?.consignment)}</td>\n <td>{displayValueOrNA(item?.order_number)}</td>\n\n <td>{displayValueOrNA(item?.total_products)}</td>\n <td>{displayValueOrNA(item?.total_orders)}</td>\n\n <td>\n {displayValueOrNA(item?.weight)}{' '}\n {item?.weight && item?.weight > 0 ? WEIGHT_UNIT : ''}\n </td>\n\n <td>{displayValueOrNA(item?.cube)}</td>\n\n <td key={item.id}>\n <StyledAntSelect\n options={assignOptions}\n placeholder=\"Select\"\n onChange={(value: any) =>\n handleAssignPayload(item?.id, value)\n }\n style={{ width: '150px' }}\n value={item?.bjs_delivery}\n />\n </td>\n\n <td>\n <ul\n className=\"statuscontainer\"\n style={{\n listStyleType: 'none',\n background: statusClass.background,\n }}\n >\n <li\n className=\"statustext\"\n style={{ color: statusClass.color }}\n >\n {status}\n </li>\n </ul>\n </td>\n <td>\n <ul className=\"actionbox\">\n <CustomDrop\n ref={dropdownRefParent}\n className={printToogle === index ? 'active' : ''}\n >\n <li\n className=\"shareIconContainer\"\n onClick={() => OpenDropDown(index)}\n >\n <PrinterIcon />\n <DownIcon />\n\n {printToogle === index && (\n <div ref={dropdownRef}>\n <PrintDropDown legacyProductId={item} />\n </div>\n )}\n </li>\n </CustomDrop>\n </ul>\n </td>\n </tr>\n );\n })\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </>\n );\n};\n\nconst StyledAntSelect = styled(Select)`\n .ant-select-selector {\n /* width: 22vw; */\n border-radius: 22px;\n }\n .ant-select-clear {\n top: 40% !important;\n font-size: 18px !important;\n }\n`;\n\nexport default OrderTable;\n","import { atom, useAtom } from 'jotai';\nimport { format } from 'date-fns';\n\nconst date = atom(new Date());\nexport const usedate = () => {\n return useAtom(date);\n};\n\ninterface Filter {\n field: string;\n op: string;\n value: any;\n}\n\ninterface Pagination {\n page: number;\n per_page: number;\n}\n\ninterface FilterState {\n 'x-filters': Filter[];\n 'x-pagination': Pagination;\n}\n\nconst initialState: FilterState = {\n 'x-filters': [],\n 'x-pagination': { page: 1, per_page: 50 },\n};\n\nconst filterReducer = (state: FilterState, action: any): FilterState => {\n switch (action.type) {\n case 'SET_DATE_FILTER':\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'created_at'),\n {\n field: 'created_at',\n op: '>=',\n value: `${format(\n new Date(action.payload),\n 'yyyy-MM-dd'\n )}T00:00:00+00:00`,\n },\n {\n field: 'created_at',\n op: '<=',\n value: `${format(\n new Date(action.payload),\n 'yyyy-MM-dd'\n )}T23:59:59+00:00`,\n },\n ],\n };\n\n case 'SET_CLIENT_FILTER':\n if (action.payload) {\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'customer_id'),\n {\n field: 'customer_id',\n op: '=',\n value: action.payload,\n },\n ],\n };\n } else {\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'customer_id'\n ),\n };\n }\n\n case 'CLEAR_CLIENT_FILTER':\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(f => f.field !== 'customer_id'),\n };\n\n case 'SET_STATUS_ORDER_FILTER':\n if (action.payload) {\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'order_status'),\n {\n field: 'order_status',\n op: '=',\n value: action.payload,\n },\n ],\n };\n } else {\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'order_status'\n ),\n };\n }\n\n case 'SET_ASSIGNEE_FILTER':\n return {\n ...state,\n 'x-filters':\n action.payload !== null\n ? [\n ...state['x-filters'].filter(f => f.field !== 'bjs_delivery'),\n {\n field: 'bjs_delivery',\n op: '=',\n value: action.payload,\n },\n ]\n : state['x-filters'].filter(f => f.field !== 'bjs_delivery'),\n };\n\n case 'CLEAR_STATUS_ORDER_FILTER':\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(f => f.field !== 'status_id'),\n };\n\n //client portal\n case 'SET_SCHEDULED_RETURN_FILTER':\n if (action.payload) {\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'order_status'),\n {\n field: 'order_status',\n op: 'in',\n value: action.payload,\n },\n ],\n };\n } else {\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'order_status'\n ),\n };\n }\n\n case 'SET_RETURN_COMPLETED_FILTER':\n if (action.payload) {\n return {\n ...state,\n 'x-filters': [\n ...state['x-filters'].filter(f => f.field !== 'order_status'),\n {\n field: 'order_status',\n op: '=',\n value: action.payload,\n },\n ],\n };\n } else {\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(\n f => f.field !== 'order_status'\n ),\n };\n }\n\n //client portal\n // case 'SET_CP_DATE_FILTER': {\n // let { startDate, endDate } = action.payload;\n\n // if (!startDate || !endDate) {\n // const storedDates = JSON.parse(\n // localStorage.getItem('returnDate') || '{}'\n // );\n // startDate = startDate ?? storedDates?.startDate;\n // endDate = endDate ?? storedDates?.endDate ?? startDate;\n // }\n\n // const filters = state['x-filters'].filter(f => f.field !== 'created_at');\n\n // if (startDate === endDate) {\n // filters.push({\n // field: 'created_at',\n // op: '=',\n // value: format(new Date(startDate), 'yyyy-MM-dd'),\n // });\n // } else if (startDate && endDate) {\n // filters.push(\n // {\n // field: 'created_at',\n // op: '>=',\n // value: format(new Date(startDate), 'yyyy-MM-dd'),\n // },\n // {\n // field: 'created_at',\n // op: '<=',\n // value: format(new Date(endDate), 'yyyy-MM-dd'),\n // }\n // );\n // }\n\n // return {\n // ...state,\n // 'x-filters': filters,\n // 'x-pagination': { ...state['x-pagination'], page: 1 },\n // };\n // }\n // case 'CLEAR_CLIENT':\n // return {\n // ...state,\n // 'x-filters': state['x-filters'].filter(f => f.field !== 'customer_id'),\n // };\n\n // case 'CLEAR_STATUS_ORDER':\n // return {\n // ...state,\n // 'x-filters': state['x-filters'].filter(f => f.field !== 'status_id'),\n // };\n\n case 'CLEAR_DATE':\n return {\n ...state,\n 'x-filters': state['x-filters'].filter(f => f.field !== 'created_at'),\n };\n\n case 'SET_PAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n page: action.payload,\n },\n };\n\n case 'SET_PERPAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n per_page: action.payload,\n },\n };\n case 'CLEAR_FILTERS':\n return {\n ...state,\n };\n case 'CLEAR_ALL_FILTER':\n return {\n ...state,\n 'x-filters': [],\n };\n default:\n return state;\n }\n};\n\nconst filtersStateAtom = atom(initialState);\n\nexport const filtersReducerReturnAtom = atom(\n get => get(filtersStateAtom),\n (get, set, action) =>\n set(filtersStateAtom, filterReducer(get(filtersStateAtom), action))\n);\n","import { ExportButton } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useAtom, useReturnAfterOrderData } from '../../../order-view/store';\nimport { filtersReducerReturnAtom } from './ReturnFilterStore';\n\nconst TableFilters = () => {\n const [state] = useAtom(filtersReducerReturnAtom);\n const [returnAfterOrder] = useReturnAfterOrderData();\n\n const { 'x-filters': filters } = state;\n const moduleInfo = {\n isExportedData: returnAfterOrder?.length <= 0 ? false : true,\n moduleName: 'return',\n filter: filters,\n file_type: 'csv',\n apiUrlEndPoint: `v1/return/orders/`,\n reference: 'return_overview_export',\n feature_name: 'return',\n };\n return (\n <Container>\n {' '}\n <ExportButton moduleInfoModule={moduleInfo} />\n </Container>\n );\n};\nconst Container = styled.div`\n display: flex;\n gap: 16px;\n align-items: center;\n`;\nexport default TableFilters;\n","import React from 'react';\n\nconst FilterIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_107_218217)\">\n <path\n d=\"M14.7667 2H1.43335L6.76668 8.30667V12.6667L9.43335 14V8.30667L14.7667 2Z\"\n stroke=\"#758588\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_107_218217\">\n <rect\n width=\"16\"\n height=\"16\"\n fill=\"white\"\n transform=\"translate(0.0999756)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default FilterIcon;\n","import React from 'react';\n\nconst DateIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"15\"\n height=\"14\"\n viewBox=\"0 0 15 14\"\n fill=\"none\"\n >\n <rect\n width=\"14\"\n height=\"14\"\n transform=\"translate(0.0999756)\"\n fill=\"white\"\n />\n <path\n opacity=\"0.4\"\n d=\"M8.84998 2.33334V1.16667M8.84998 2.33334V3.50001M8.84998 2.33334H6.22498M1.84998 5.83334V11.0833C1.84998 11.3928 1.97289 11.6895 2.19168 11.9083C2.41048 12.1271 2.70722 12.25 3.01664 12.25H11.1833C11.4927 12.25 11.7895 12.1271 12.0083 11.9083C12.2271 11.6895 12.35 11.3928 12.35 11.0833V5.83334M1.84998 5.83334H12.35M1.84998 5.83334V3.50001C1.84998 3.19059 1.97289 2.89384 2.19168 2.67505C2.41048 2.45625 2.70722 2.33334 3.01664 2.33334H4.18331M12.35 5.83334V3.50001C12.35 3.19059 12.2271 2.89384 12.0083 2.67505C11.7895 2.45625 11.4927 2.33334 11.1833 2.33334H10.8916M4.18331 1.16667V3.50001\"\n stroke=\"#3A3630\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n);\n\nexport default DateIcon;\n","import React from 'react';\n\nconst ClientIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"15\"\n height=\"14\"\n viewBox=\"0 0 15 14\"\n fill=\"none\"\n >\n <path\n d=\"M2.1001 3.25C2.1001 2.52065 2.38983 1.82118 2.90555 1.30546C3.42128 0.789731 4.12075 0.5 4.8501 0.5C5.57944 0.5 6.27892 0.789731 6.79464 1.30546C7.31037 1.82118 7.6001 2.52065 7.6001 3.25C7.6001 3.97935 7.31037 4.67882 6.79464 5.19454C6.27892 5.71027 5.57944 6 4.8501 6C4.12075 6 3.42128 5.71027 2.90555 5.19454C2.38983 4.67882 2.1001 3.97935 2.1001 3.25ZM8.6001 4.75C8.6001 4.45453 8.6583 4.16194 8.77137 3.88896C8.88444 3.61598 9.05018 3.36794 9.25911 3.15901C9.46804 2.95008 9.71608 2.78434 9.98906 2.67127C10.262 2.5582 10.5546 2.5 10.8501 2.5C11.1456 2.5 11.4382 2.5582 11.7111 2.67127C11.9841 2.78434 12.2322 2.95008 12.4411 3.15901C12.65 3.36794 12.8158 3.61598 12.9288 3.88896C13.0419 4.16194 13.1001 4.45453 13.1001 4.75C13.1001 5.34674 12.863 5.91903 12.4411 6.34099C12.0191 6.76295 11.4468 7 10.8501 7C10.2534 7 9.68106 6.76295 9.25911 6.34099C8.83715 5.91903 8.6001 5.34674 8.6001 4.75ZM0.100098 11.75C0.100098 10.4902 0.600543 9.28204 1.49134 8.39124C2.38214 7.50044 3.59032 7 4.8501 7C6.10988 7 7.31806 7.50044 8.20885 8.39124C9.09965 9.28204 9.6001 10.4902 9.6001 11.75V11.752L9.59943 11.8313C9.59802 11.9161 9.57506 11.9991 9.53273 12.0726C9.4904 12.1461 9.43007 12.2076 9.35743 12.2513C7.99686 13.0705 6.43826 13.5023 4.8501 13.5C3.2021 13.5 1.65943 13.044 0.343431 12.2513C0.270665 12.2077 0.210209 12.1462 0.167755 12.0727C0.125302 11.9993 0.102248 11.9162 0.100764 11.8313L0.100098 11.75ZM10.6001 11.752L10.5994 11.848C10.5957 12.0702 10.5426 12.2888 10.4441 12.488C10.5783 12.496 10.7137 12.5 10.8501 12.5C11.9141 12.5 12.9214 12.2533 13.8174 11.814C13.8983 11.7745 13.967 11.7138 14.0163 11.6385C14.0656 11.5632 14.0936 11.4759 14.0974 11.386L14.1001 11.25C14.1002 10.7019 13.9617 10.1626 13.6974 9.68244C13.4331 9.20224 13.0517 8.79668 12.5886 8.50348C12.1254 8.21029 11.5957 8.03899 11.0486 8.00551C10.5015 7.97203 9.95484 8.07746 9.45943 8.312C10.201 9.3047 10.6009 10.5109 10.5994 11.75L10.6001 11.752Z\"\n fill=\"#758588\"\n />\n </svg>\n);\n\nexport default ClientIcon;\n","import React from 'react';\n\nconst StatusIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"13\"\n height=\"12\"\n viewBox=\"0 0 13 12\"\n fill=\"none\"\n >\n <path\n d=\"M2.60002 6V4.83333C2.60002 3.90507 2.96877 3.01483 3.62514 2.35845C4.28152 1.70208 5.17176 1.33333 6.10002 1.33333C7.02827 1.33333 7.91851 1.70208 8.57489 2.35845C9.23127 3.01483 9.60002 3.90507 9.60002 4.83333V6M1.43335 9.5C1.43335 9.80941 1.55627 10.1062 1.77506 10.325C1.99385 10.5437 2.2906 10.6667 2.60002 10.6667C2.90944 10.6667 3.20618 10.5437 3.42497 10.325C3.64377 10.1062 3.76668 9.80941 3.76668 9.5C3.76668 9.19058 3.64377 8.89383 3.42497 8.67504C3.20618 8.45625 2.90944 8.33333 2.60002 8.33333C2.2906 8.33333 1.99385 8.45625 1.77506 8.67504C1.55627 8.89383 1.43335 9.19058 1.43335 9.5ZM8.43335 9.5C8.43335 9.80941 8.55627 10.1062 8.77506 10.325C8.99385 10.5437 9.2906 10.6667 9.60002 10.6667C9.90944 10.6667 10.2062 10.5437 10.425 10.325C10.6438 10.1062 10.7667 9.80941 10.7667 9.5C10.7667 9.19058 10.6438 8.89383 10.425 8.67504C10.2062 8.45625 9.90944 8.33333 9.60002 8.33333C9.2906 8.33333 8.99385 8.45625 8.77506 8.67504C8.55627 8.89383 8.43335 9.19058 8.43335 9.5Z\"\n stroke=\"#6D6B68\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M7.8501 4.25L9.6001 6L11.3501 4.25\"\n stroke=\"#6D6B68\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n);\n\nexport default StatusIcon;\n","import React from 'react';\n\nconst AssigneIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"15\"\n height=\"14\"\n viewBox=\"0 0 15 14\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_504_13636)\">\n <path\n d=\"M4.4751 1.16667H12.6418V6.70834H11.4751V2.33334H10.3084V5.61051L8.55843 4.7355L6.80843 5.61051V2.33334H5.64176V5.54167H4.4751V1.16667ZM7.9751 2.33334V3.72284L8.55843 3.43117L9.14176 3.72284V2.33334H7.9751ZM5.02051 7.72917C4.92474 7.72892 4.82985 7.74755 4.74127 7.78398C4.65269 7.82041 4.57215 7.87394 4.50426 7.9415L3.30843 9.13734V11.375H6.59085L9.97593 10.5292L12.0363 9.6495C12.1064 9.61158 12.1601 9.54908 12.1871 9.47399C12.214 9.3989 12.2123 9.31652 12.1822 9.24263C12.1521 9.16875 12.0958 9.10857 12.0241 9.07364C11.9524 9.0387 11.8703 9.03147 11.7936 9.05334L11.7819 9.05625L8.0416 9.91667H5.93343V8.75H7.75635C7.89172 8.75 8.02154 8.69623 8.11727 8.60051C8.21299 8.50479 8.26676 8.37496 8.26676 8.23959C8.26676 8.10422 8.21299 7.97439 8.11727 7.87867C8.02154 7.78295 7.89172 7.72917 7.75635 7.72917H5.02051ZM9.42585 8.40117L11.4978 7.92459C11.7185 7.86656 11.9496 7.85988 12.1732 7.90505C12.3969 7.95022 12.6072 8.04605 12.7881 8.18518C12.969 8.3243 13.1155 8.50302 13.2166 8.70762C13.3176 8.91221 13.3704 9.13724 13.3709 9.36542C13.3707 9.64241 13.2934 9.91388 13.1478 10.1495C13.0021 10.3851 12.7938 10.5755 12.5461 10.6995L12.5303 10.7077L10.3487 11.6381L6.73435 12.5417H0.100098V8.3125H2.4836L3.6806 7.1155C3.85696 6.93974 4.06622 6.80044 4.29643 6.70555C4.52663 6.61067 4.77327 6.56206 5.02226 6.5625H7.75635C7.99023 6.56247 8.22153 6.61136 8.4354 6.70603C8.64926 6.8007 8.84096 6.93905 8.99818 7.11221C9.15541 7.28536 9.27467 7.48948 9.34832 7.71146C9.42198 7.93345 9.44838 8.16838 9.42585 8.40117ZM2.14176 9.47917H1.26676V11.375H2.14176V9.47917Z\"\n fill=\"#6D6B68\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_504_13636\">\n <rect\n width=\"14\"\n height=\"14\"\n fill=\"white\"\n transform=\"translate(0.100098)\"\n />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default AssigneIcon;\n","import React, { useEffect, useState } from 'react';\nimport {\n LeftSideConatiner,\n StyledFIlterELements,\n StyledFiter,\n} from '../../filters/FilterStyle';\nimport TableFilters from './TableFilters';\nimport FilterIcon from '../../../../assets/icons/FilterIcon';\nimport DateIcon from '../../../../assets/icons/DateIcon';\n// import StatusIcon from '../../../../assets/icons/StatusIcon';\nimport ClientIcon from '../../../../assets/icons/ClientIcon';\n// import AssigneIcon from '../../../../assets/icons/AssigneIcon';\nimport { DatePicker, Select } from 'antd';\nimport { useAtom } from '../../../order-view/store';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport {\n useAssignData,\n // useCustomerData,\n useStatusOrderData,\n} from '../../../store';\nimport StatusIcon from '../../../../assets/icons/StatusIcon';\nimport AssigneIcon from '../../../../assets/icons/AssigneIcon';\nimport {\n ClearAll,\n StyledFilterBtnIcon,\n StyledFilterBtnLabel,\n} from '../../table/table-data/styles';\nimport { filtersReducerReturnAtom } from './ReturnFilterStore';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../common/interface';\n\nconst ReturnOrderFilter = () => {\n const [, dispatch] = useAtom(filtersReducerReturnAtom);\n // const [customers] = useCustomerData();\n const [selectedDate, setSelectedDate] = useState<any | null>();\n const [statusOfOrder] = useStatusOrderData();\n const [selectedClient, setSelectedClient] = useState<any | null>();\n const [statusOrder, setStatusOfOrder] = useState<any | null>();\n const [selectedAssignee, setSelectedAssignee] = useState<any | null>();\n const [assignData] = useAssignData();\n\n //API for client data\n const { data: fetchedCustomerData, fetchData } = useAxios<ApiResponse>({\n endpoint: `/v1/return/order/customers/`,\n method: 'GET',\n //@ts-ignore\n pagination: { is_pagination: false },\n });\n\n useEffect(() => {\n fetchData();\n }, []);\n\n // date change here\n const handleDateChange = (date: any | null) => {\n setSelectedDate(date ? date?.$d : null);\n };\n useEffect(() => {\n if (selectedDate) {\n dispatch({\n type: 'SET_DATE_FILTER',\n payload: selectedDate,\n });\n // Reset to the first page\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n }\n }, [selectedDate]);\n //client options\n const clientOptions = fetchedCustomerData?.data?.map((option: any) => ({\n label:\n option?.customer_name?.charAt(0)?.toUpperCase() +\n option?.customer_name?.slice(1),\n value: option?.customer_id,\n }));\n //status of order\n const orderOptions = statusOfOrder?.map((option: any) => ({\n label:\n option?.status_type?.charAt(0)?.toUpperCase() +\n option?.status_type?.slice(1),\n value: option?.type,\n }));\n const handleClientChange = (value: any) => {\n if (value === selectedClient) return;\n setSelectedClient(value);\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: value,\n });\n // Reset to the first page\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n };\n const handleStatusOfOrder = (value: any) => {\n if (value === statusOfOrder) return;\n setStatusOfOrder(value);\n dispatch({\n type: 'SET_STATUS_ORDER_FILTER',\n payload: value,\n });\n // Reset to the first page\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n };\n\n const assigneeOptions = assignData?.map(client => ({\n label: client.type,\n value: client.id,\n }));\n\n const handleAssigneeChange = (value: any) => {\n const bjsDeliveryValue = assignData.find(client => client.id === value)\n ?.bjs_delivery;\n if (bjsDeliveryValue === undefined) return;\n setSelectedAssignee(value);\n dispatch({\n type: 'SET_ASSIGNEE_FILTER',\n payload: bjsDeliveryValue,\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n };\n\n const handleClearAssignee = () => {\n setSelectedAssignee(null);\n dispatch({\n type: 'SET_ASSIGNEE_FILTER',\n payload: null,\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n };\n\n const handleClearAll = () => {\n setSelectedDate(null);\n setSelectedClient(null);\n setStatusOfOrder(null);\n setSelectedAssignee(null);\n dispatch({ type: 'CLEAR_ALL_FILTER' });\n };\n\n const handleClear = () => {\n dispatch({\n type: 'CLEAR_STATUS_ORDER_FILTER',\n });\n\n setStatusOfOrder(null);\n };\n\n const handleClearClient = () => {\n dispatch({\n type: 'CLEAR_CLIENT_FILTER',\n });\n setSelectedClient(null);\n };\n //clearing filters\n useEffect(() => {\n if (selectedDate === null) {\n dispatch({ type: 'CLEAR_DATE' });\n }\n }, [selectedDate]);\n\n return (\n <>\n <StyledFiter>\n <StyledFIlterELements>\n <LeftSideConatiner>\n <div className=\"filtercontainer\">\n <div className=\"filtericon\">\n <FilterIcon />\n </div>\n <div className=\"textcont\">Filters</div>\n </div>\n <div className=\"datefilter\">\n <div className=\"dateiconcontainer\">\n <DateIcon />\n </div>\n <StyledDatePicker>\n <DatePicker\n className=\"custom-datepicker\"\n onChange={handleDateChange}\n style={{ width: '100px' }}\n value={selectedDate ? dayjs(selectedDate) : null}\n format=\"DD/MM/YY\"\n placeholder=\"Date\"\n needConfirm\n allowClear\n />\n </StyledDatePicker>\n </div>\n <div className=\"datefilter\">\n <div className=\"dateiconcontainer\">\n <StatusIcon />\n </div>\n <StyledAntSelect>\n <Select\n options={orderOptions}\n className=\"custom-select\"\n placeholder=\"Status of Order\"\n onChange={handleStatusOfOrder}\n style={{ minWidth: '250px', maxWidth: '300px' }}\n value={statusOrder}\n onClear={handleClear}\n allowClear\n />\n </StyledAntSelect>\n </div>\n <div className=\"datefilter\">\n <div className=\"dateiconcontainer\">\n <ClientIcon />\n </div>\n <StyledAntSelect>\n <Select\n options={clientOptions}\n className=\"custom-select\"\n placeholder=\"Clients\"\n onChange={handleClientChange}\n value={selectedClient}\n style={{\n minWidth: '150px',\n width: 'auto',\n cursor: 'pointer',\n }}\n allowClear\n onClear={handleClearClient}\n filterOption={(input: any, option: any) =>\n (option?.label ?? '')\n .toLowerCase()\n .includes(input.toLowerCase())\n }\n showSearch\n />\n </StyledAntSelect>\n </div>\n\n <div className=\"datefilter\">\n <div className=\"dateiconcontainer\">\n <AssigneIcon />\n </div>\n <StyledAntSelect>\n <Select\n options={assigneeOptions}\n className=\"custom-select\"\n placeholder=\"Assignee\"\n onChange={handleAssigneeChange}\n value={selectedAssignee}\n style={{ minWidth: '140px' }}\n allowClear\n onClear={handleClearAssignee}\n />\n </StyledAntSelect>\n </div>\n\n {selectedDate ||\n statusOrder ||\n selectedClient ||\n selectedAssignee ? (\n <>\n <ClearAll onClick={handleClearAll}>\n <StyledFilterBtnIcon>\n <i className=\"cross\"></i>\n </StyledFilterBtnIcon>\n <StyledFilterBtnLabel>Clear all</StyledFilterBtnLabel>\n </ClearAll>\n </>\n ) : null}\n </LeftSideConatiner>\n </StyledFIlterELements>\n <TableFilters />\n </StyledFiter>\n </>\n );\n};\nconst StyledDatePicker = styled.div`\n .custom-datepicker {\n border: none;\n }\n`;\n// const DropdownContainer = styled.div``;\nexport const StyledAntSelect = styled.div`\n .custom-select {\n border: none;\n width: 80px;\n }\n .ant-select-selector {\n border: 1px solid #ffffff !important;\n }\n :where(.css-dev-only-do-not-override-m4timi).ant-select-single:not(.ant-select-customize-input)\n .ant-select-selector {\n padding: 0 5px;\n }\n :where(.css-dev-only-do-not-override-m4timi).ant-select-outlined:not(.ant-select-customize-input)\n .ant-select-selector {\n border: none;\n }\n .roundbox {\n display: flex;\n width: 18px;\n height: 18px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 18px;\n background: #fff;\n box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.1);\n left: 359px;\n position: absolute;\n border-radius: 18px;\n background: #fff;\n box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.1);\n top: 16px;\n }\n .ant-select-clear {\n top: 40% !important;\n font-size: 18px !important;\n }\n`;\nexport default ReturnOrderFilter;\n","import React from 'react';\nimport {\n StyledContainer,\n StyledContentWrapper,\n // StyledDropdown,\n StyledInfoBox,\n StyledLabel,\n StyledPaginationItem,\n StyledPaginationWrapper,\n // StyledDropdownData,\n} from './PaginationStyle';\nimport PrevIcon from '../../../assets/icons/PrevIcon';\nimport NextIcon from '../../../assets/icons/NextIcon';\nimport { useAtom } from 'jotai';\nimport { Select } from 'antd';\nimport { filtersReducerReturnAtom } from '../return-after-table/table-filters/ReturnFilterStore';\n\nconst PAGE_SIZE_OPTIONS = [50, 100, 150];\nconst MAX_PAGES_TO_SHOW = 5;\n\nconst ReturnPagination: React.FC<any> = ({\n currentPage,\n totalItems,\n itemsPerPage,\n onPageChange,\n onItemsPerPageChange,\n}) => {\n const [, dispatch] = useAtom(filtersReducerReturnAtom);\n\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n const startItem = (currentPage - 1) * itemsPerPage + 1;\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\n\n const handlePageChange = (page: number) => {\n if (page >= 1 && page <= totalPages) {\n dispatch({\n type: 'SET_PAGE',\n payload: page,\n });\n\n onPageChange(page);\n }\n };\n\n const handleItemsPerPageChange = (value: number) => {\n const newItemsPerPage = value;\n dispatch({\n type: 'SET_PERPAGE',\n payload: newItemsPerPage,\n });\n\n // Reset to the first page\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n\n onPageChange(1);\n onItemsPerPageChange(newItemsPerPage);\n };\n\n const getPageNumbers = (\n currentPage: number,\n totalPages: number\n ): number[] => {\n const pageNumbers: number[] = [1]; // Always show the first page\n\n if (currentPage > MAX_PAGES_TO_SHOW / 2 + 1) {\n pageNumbers.push(-1); // Ellipsis\n }\n\n const startPage = Math.max(\n 2,\n Math.min(currentPage - 1, totalPages - MAX_PAGES_TO_SHOW + 2)\n );\n const endPage = Math.min(startPage + MAX_PAGES_TO_SHOW - 3, totalPages - 1);\n for (let i = startPage; i <= endPage; i++) {\n pageNumbers.push(i);\n }\n\n if (currentPage < totalPages - MAX_PAGES_TO_SHOW / 2 - 1) {\n pageNumbers.push(-1); // Ellipsis\n }\n\n if (totalPages > 1) {\n pageNumbers.push(totalPages); // Always show the last page\n }\n\n return pageNumbers;\n };\n\n return (\n <StyledContainer>\n <StyledContentWrapper>\n <StyledInfoBox>\n Showing {startItem}-{endItem} from {totalItems}\n </StyledInfoBox>\n <StyledLabel>Row on Page</StyledLabel>\n <Select\n value={itemsPerPage}\n onChange={handleItemsPerPageChange}\n style={{ width: 75 }}\n >\n {PAGE_SIZE_OPTIONS.map(option => (\n <Select.Option key={option} value={option}>\n {option}\n </Select.Option>\n ))}\n </Select>\n <StyledPaginationWrapper>\n <StyledPaginationItem\n onClick={() => handlePageChange(currentPage - 1)}\n >\n <PrevIcon />\n </StyledPaginationItem>\n {getPageNumbers(currentPage, totalPages).map((pageNumber, index) => (\n <StyledPaginationItem\n key={index}\n active={pageNumber === currentPage}\n onClick={() => handlePageChange(pageNumber)}\n >\n {pageNumber === -1 ? '...' : pageNumber}\n </StyledPaginationItem>\n ))}\n <StyledPaginationItem\n onClick={() => handlePageChange(currentPage + 1)}\n >\n <NextIcon />\n </StyledPaginationItem>\n </StyledPaginationWrapper>\n </StyledContentWrapper>\n </StyledContainer>\n );\n};\n\nexport default ReturnPagination;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport OrderTable from './table/OrderTable';\nimport ReturnOrderFilter from './table-filters/ReturnOrderFilter';\nimport { useAtom, useReturnAfterOrderData } from '../../order-view/store';\nimport {\n useItemsPerReturnPage,\n useLoading,\n UsePaginationData,\n UsePaginationReturnData,\n} from '../store/store';\nimport { ApiResponse } from '../common/interface';\nimport {\n DocumentTitle,\n useApiHook,\n} from '@bjsdistribution/dms-component-library';\nimport { filtersReducerReturnAtom } from './table-filters/ReturnFilterStore';\nimport { notification } from 'antd';\nimport ReturnPagination from '../table-view/ReturnPagination';\nimport { useCallApiAgain } from '../../store';\n\nconst ReturnAfterTable = () => {\n const [returnAfterOrder, setReturnOrderData] = useReturnAfterOrderData();\n const [, setLoading] = useLoading();\n const [state] = useAtom(filtersReducerReturnAtom);\n const [callApi] = useCallApiAgain();\n\n const { 'x-filters': filters, 'x-pagination': pagination } = state;\n const [paginationObj] = UsePaginationReturnData();\n const [, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useItemsPerReturnPage();\n const [, setPaginationObject] = UsePaginationData();\n const { page, total } = paginationObj;\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n };\n const handleItemsPerPageChange = (itemsPerPage: number) => {\n setItemsPerPage(itemsPerPage);\n };\n\n const {\n data: fetchedReturnOrderData,\n loading,\n setShouldPerformAction,\n paginationData,\n } = useApiHook<ApiResponse>({\n endpoint: '/v1/return/orders/',\n method: 'GET',\n filters: filters && filters?.length > 0 ? filters : undefined,\n pagination: pagination,\n performAction: false,\n showLoader: false,\n });\n\n useEffect(() => {\n callApi ? setShouldPerformAction(true) : setShouldPerformAction(false);\n }, [callApi]);\n\n useEffect(() => {\n setLoading(loading);\n if (fetchedReturnOrderData && fetchedReturnOrderData?.data) {\n setReturnOrderData(fetchedReturnOrderData?.data);\n if (paginationData) {\n try {\n const { count, ...rest } = JSON.parse(paginationData);\n setPaginationObject(rest);\n } catch (error) {\n console.error('Error parsing paginationData:', error);\n notification.error({\n message: 'Error',\n description: 'Failed to parse pagination data',\n });\n }\n } else {\n notification.error({\n message: 'Error',\n description: 'Pagination data is null or undefined',\n });\n }\n }\n }, [fetchedReturnOrderData, loading, returnAfterOrder]);\n\n return (\n <div>\n <DocumentTitle title=\"Return Order List\" />\n <DashBoardWrapper>\n {/* <RouterHeader /> */}\n <div className=\"Tableconatiner\">\n {/* <HeaderFilter /> */}\n <Container>\n <ReturnOrderFilter />\n <OrderTable />\n {total > 0 && (\n <ReturnPagination\n currentPage={page}\n totalItems={total}\n itemsPerPage={itemsPerPage}\n onPageChange={handlePageChange}\n onItemsPerPageChange={handleItemsPerPageChange}\n ></ReturnPagination>\n )}\n </Container>\n </div>\n </DashBoardWrapper>\n </div>\n );\n};\nconst Container = styled.div`\n position: relative;\n /* top: -30px; */\n`;\nconst DashBoardWrapper = styled.section`\n .Tableconatiner {\n border-radius: 12px;\n background: #fff;\n box-shadow: -2px 0px 12px 0px rgba(56, 71, 109, 0.1);\n display: block;\n padding: 15px 20px;\n }\n .headerWrap,\n .tableData,\n .styleCovered {\n transition: all ease 0.5s;\n }\n &.stickyTableHead {\n h2 {\n font-size: 21px;\n }\n .headerWrap {\n height: 84px;\n padding: 10px;\n border-radius: 0px 0px 15px 15px;\n > div {\n position: relative;\n z-index: 10;\n }\n }\n .styleCovered {\n margin-top: -32px;\n width: 67%;\n float: right;\n gap: 5px;\n padding-right: 11px;\n\n li {\n padding: 4px 10px 5px 5px;\n gap: 5px;\n .svgCover {\n width: 30px;\n height: 30px;\n svg {\n height: auto;\n width: 58%;\n }\n }\n .countDigit {\n font-size: 19px;\n }\n }\n .countMess {\n font-size: 13px;\n }\n }\n .dmsBulkFilter {\n min-height: unset;\n gap: 4px;\n > div {\n padding: 4px 12px;\n label {\n font-size: 11px;\n }\n }\n }\n\n .StyledFilterList {\n gap: 4px;\n li {\n height: 29px;\n padding: 3px 8px;\n gap: 4px;\n .StyledFilterBtnIcon {\n width: 20px;\n height: 20px;\n svh {\n width: 10px;\n height: auto;\n }\n }\n .StyledFilterBtnLabel {\n font-size: 13px;\n }\n }\n }\n .StyledFilterLabel {\n padding-left: 10px;\n span {\n font-size: 13px;\n }\n }\n .cardcontainer.tableData {\n max-height: calc(100vh - 310px);\n min-height: calc(100vh - 310px);\n }\n\n .tableData {\n max-height: calc(100vh - 320px);\n min-height: calc(100vh - 320px);\n\n margin-top: 8px;\n thead {\n position: sticky;\n top: 0;\n z-index: 9;\n th {\n font-size: 13px;\n padding: 2px 15px;\n }\n }\n }\n }\n`;\n\nexport default ReturnAfterTable;\n","import React from 'react';\nimport styled from 'styled-components';\n\ninterface HeaderProps {\n label: string;\n}\n\nfunction Header(props: HeaderProps) {\n return (\n <Container>\n <Text>{props.label}</Text>\n </Container>\n );\n}\n\nconst Text = styled.span`\n border-bottom: 1px solid #feba30;\n color: #3a3630;\n font-family: 'Roboto', 'sans-serif';\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n width: fit-content;\n text-transform: uppercase;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\n\nexport default Header;\n","import React from 'react';\n\nfunction SearchIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n opacity=\"0.4\"\n d=\"M10.77 18.3C9.2807 18.3 7.82485 17.8584 6.58655 17.031C5.34825 16.2036 4.38311 15.0275 3.81318 13.6516C3.24325 12.2757 3.09413 10.7616 3.38468 9.30096C3.67523 7.84029 4.39239 6.49857 5.44548 5.44548C6.49857 4.39239 7.84029 3.67523 9.30096 3.38468C10.7616 3.09413 12.2757 3.24325 13.6516 3.81318C15.0275 4.38311 16.2036 5.34825 17.031 6.58655C17.8584 7.82485 18.3 9.2807 18.3 10.77C18.3 11.7588 18.1052 12.738 17.7268 13.6516C17.3484 14.5652 16.7937 15.3953 16.0945 16.0945C15.3953 16.7937 14.5652 17.3484 13.6516 17.7268C12.738 18.1052 11.7588 18.3 10.77 18.3ZM10.77 4.74999C9.58331 4.74999 8.42327 5.10189 7.43657 5.76118C6.44988 6.42046 5.68084 7.35754 5.22672 8.45389C4.77259 9.55025 4.65377 10.7566 4.88528 11.9205C5.11679 13.0844 5.68824 14.1535 6.52735 14.9926C7.36647 15.8317 8.43556 16.4032 9.59945 16.6347C10.7633 16.8662 11.9697 16.7474 13.0661 16.2933C14.1624 15.8391 15.0995 15.0701 15.7588 14.0834C16.4181 13.0967 16.77 11.9367 16.77 10.75C16.77 9.15869 16.1379 7.63257 15.0126 6.50735C13.8874 5.38213 12.3613 4.74999 10.77 4.74999Z\"\n fill=\"#3A3630\"\n />\n <path\n opacity=\"0.4\"\n d=\"M20 20.75C19.9014 20.7505 19.8038 20.7312 19.7128 20.6935C19.6218 20.6557 19.5392 20.6001 19.47 20.53L15.34 16.4C15.2075 16.2578 15.1354 16.0698 15.1388 15.8755C15.1422 15.6812 15.2209 15.4958 15.3583 15.3584C15.4958 15.221 15.6811 15.1422 15.8754 15.1388C16.0697 15.1354 16.2578 15.2075 16.4 15.34L20.53 19.47C20.6704 19.6106 20.7493 19.8012 20.7493 20C20.7493 20.1987 20.6704 20.3894 20.53 20.53C20.4607 20.6001 20.3782 20.6557 20.2872 20.6935C20.1961 20.7312 20.0985 20.7505 20 20.75Z\"\n fill=\"#3A3630\"\n />\n </svg>\n );\n}\n\nexport default SearchIcon;\n","import React from 'react';\n\ninterface IconProps {\n fill?: string;\n}\n\nfunction CopyIcon(props: IconProps) {\n const { fill, ...rest } = props;\n return (\n <svg\n width=\"12\"\n height=\"16\"\n viewBox=\"0 0 12 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path\n d=\"M11.6475 5.00586L7.5 0.858359C7.39461 0.75284 7.25163 0.693491 7.1025 0.693359H5.25C4.70299 0.693359 4.17839 0.910658 3.79159 1.29745C3.4048 1.68425 3.1875 2.20885 3.1875 2.75586V3.69336H2.25C1.70299 3.69336 1.17839 3.91066 0.791592 4.29745C0.404798 4.68425 0.1875 5.20885 0.1875 5.75586V13.2559C0.1875 13.8029 0.404798 14.3275 0.791592 14.7143C1.17839 15.1011 1.70299 15.3184 2.25 15.3184H7.5C8.04701 15.3184 8.57161 15.1011 8.95841 14.7143C9.3452 14.3275 9.5625 13.8029 9.5625 13.2559V12.3184H9.75C10.297 12.3184 10.8216 12.1011 11.2084 11.7143C11.5952 11.3275 11.8125 10.8029 11.8125 10.2559V5.38086C11.8066 5.23956 11.7477 5.10567 11.6475 5.00586ZM7.6875 2.61336L9.8925 4.81836H7.6875V2.61336ZM8.4375 13.2559C8.4375 13.5045 8.33873 13.743 8.16291 13.9188C7.9871 14.0946 7.74864 14.1934 7.5 14.1934H2.25C2.00136 14.1934 1.7629 14.0946 1.58709 13.9188C1.41127 13.743 1.3125 13.5045 1.3125 13.2559V5.75586C1.3125 5.50722 1.41127 5.26876 1.58709 5.09295C1.7629 4.91713 2.00136 4.81836 2.25 4.81836H3.1875V10.2559C3.1875 10.8029 3.4048 11.3275 3.79159 11.7143C4.17839 12.1011 4.70299 12.3184 5.25 12.3184H8.4375V13.2559ZM9.75 11.1934H5.25C5.00136 11.1934 4.7629 11.0946 4.58709 10.9188C4.41127 10.743 4.3125 10.5045 4.3125 10.2559V2.75586C4.3125 2.50722 4.41127 2.26876 4.58709 2.09295C4.7629 1.91713 5.00136 1.81836 5.25 1.81836H6.5625V5.38086C6.56444 5.52944 6.62433 5.67139 6.7294 5.77646C6.83447 5.88153 6.97642 5.94142 7.125 5.94336H10.6875V10.2559C10.6875 10.5045 10.5887 10.743 10.4129 10.9188C10.2371 11.0946 9.99864 11.1934 9.75 11.1934Z\"\n fill={fill || '#3A3630'}\n />\n </svg>\n );\n}\n\nexport default CopyIcon;\n","import React from 'react';\n\nfunction What3WordsIcon() {\n return (\n <svg\n width=\"24\"\n height=\"18\"\n viewBox=\"0 0 24 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n >\n <rect\n id=\"w3w_SymbolTransparentBackground_RGB_Red 1\"\n width=\"23\"\n height=\"17\"\n transform=\"matrix(-1 0 0 1 23.5 0.5)\"\n fill=\"url(#pattern0_1721_14896)\"\n />\n <defs>\n <pattern\n id=\"pattern0_1721_14896\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use\n xlinkHref=\"#image0_1721_14896\"\n transform=\"matrix(0.00834281 0 0 0.0100114 -0.698616 -0.933333)\"\n />\n </pattern>\n <image\n id=\"image0_1721_14896\"\n data-name=\"w3w_SymbolTransparentBackground_RGB_Red.png\"\n width=\"294\"\n height=\"293\"\n xlinkHref=\"data:image/png;base64,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\"\n />\n </defs>\n </svg>\n );\n}\n\nexport default What3WordsIcon;\n","import React from 'react';\n\nfunction FlexCallIcon() {\n return (\n <svg\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"20\"\n height=\"20\"\n fill=\"url(#pattern0_1409_127538)\"\n />\n <defs>\n <pattern\n id=\"pattern0_1409_127538\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use xlinkHref=\"#image0_1409_127538\" transform=\"scale(0.0208333)\" />\n </pattern>\n <image\n id=\"image0_1409_127538\"\n width=\"48\"\n height=\"48\"\n xlinkHref=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMC1jMDAwIDc5LjE3MWMyN2ZhYiwgMjAyMi8wOC8xNi0yMjozNTo0MSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmMzg5ZGMzYi00MjFjLWNkNDctOTg3MS1kODc1MmUzMTRlODciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEEzREZEQ0YwN0E4MTFFRkIxQ0VGM0Y1QUQ4ODg1REMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEEzREZEQ0UwN0E4MTFFRkIxQ0VGM0Y1QUQ4ODg1REMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGNiMDQ4MTktZjU2Yi1mMTQ4LTgyM2MtMWY4NmQ5M2RmOGM4IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OTgwMTI0ODgtMGE1MC02MDRlLWE0ZDktNTM1NzE3YmM0NTUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/EA0BwAABMZJREFUeNrsWmloVUcUvldjTEu1Lkg1dUVUrNG4tNalFKkIIpTiHzVorftaQakglf6x2gXqRuuPuhRFEcXSH3XHFVsoViuiplZFTFQ0dbeJoqnV63devgfjOPfdmfduXnzQAx/3zuTO5Hwzc5Y5iR8EgZfLUs/LcfmfQF1LXiyzbPbjNqTjwHhvVHAiV3egF7AFC9Mtl49QZ2BnFIkX3QbaArtSkcgFI26TikSueKE2Yccpl9yoHKdtIFEM5D3jRn3ffwuPj4FmEZPcBlYAR9XOYJO3G4+hWSDRAdgqjhuYl9BdciEQWIf35paTCIlxordCoD0eq4AhEWOrOM5Pk0B9Lvo1xIi2aiBr7DBJM67EhWSHX+KVg8REvMpCvGcY8x93bg/wWCNQ3yGg5nGuCj0SPwQaOJDorhKA8hPwWM+dMZEQhc+SQL5iez5W8l4mZyp5hNbg/TWlX1bzutL+AJiktA8DXygEqhIJRYk3Ge+FeN9gIHEN+Jsrru7ADWAuiBzLJJmr1PpbaO1TWrubpsQrkrtA+VVQ5CrexwD7tTGyQMVAEccnMQj4AfT7ZEKgQusv1NplNMCkNKId6AY2EYqsBAmZbyxwwFIPIbYGY3ulS+BKBAHxHH8a7MA03xQoshrPW8CHhp0Ik54k0TMOAh0N35Zq7aIU806i16nkcdpnqU9vYHUiWDkSOKf1d9Vcm2+IE29EzC0klgD3eJz2Wur0ZiKmbPa7u9rATaW/AOikuNrZwHBt7COL+acAi7kT4x12oi9JdHW5D+iepgeNdaHBJYry31sqMxX4ErhDQrY70Q9YCxJF6RIYDHxjOOuymp8xFtjKR8AAeKcykrDdibd5M/Nt7sSi0HQlIrcyfC9HbYHB6KX9egpFHtHNeiBRDoUkUM5hbHgSFmT5PI8xgQ0B8fN/AP1Dvi3lUagy/Ezc5cYQ0iLVhEcSl0DiU9paVEGg0qUqcSCEgPR/x0Tq+aUq8Q4iCpcwzW0ZsprPHoNRwUPmYLHWhWQH/tH6fgOWhymvkDgkajHnqbPClii5wxATCqwywxoSI8NIIGm0QqaVue3AA6XdFBhhnd7WkBjBzFNPR2p9B5LG/LPWJ+l0awcSv3AnLrGrIZEVAiI/aveBBomc3aEUSRISfS8CL0XZUNwE/uXNSk/wRjvOfwT4ic7ham0QSN7Iwn4uN/93tHO8DDjo+Hskos5gMDsDnGRcKTPZhssfXaIINKL/b67tzufACcvfIUnh17wLm+zttE4oTgIiUmT9SlNASCzyasrgURWMpQ4lm7vAt9DpaKY2oMo5BjJ1WfKZ0A1OMU4Mf76D8iJNgJlxGLEuvyZuSs+TmM3s0lSSEUW6aH07Oc/vITmV50jY6gipMgyYZqisXeYV8nRIGUbkGG3niZIfdWC6Plkz4vdri4DIu8AsQ3oR0DuVss5aT0u3PwHuh8y5LZsEkkXW+SGZpy73qfyVFN+kTSDd8noZz/9uixznL+BVL64/KMa0A3qVTm5y7SK+q2Z9tJxRuYJlxepEZS7LR8h0YRnIBK59ppPVBQGVSG9WMfqFRN9YCcR9LgO6S8HLJFHMMmQLyzluZdsGbKUlM9pCXv5bMfLmk2wBL/ArXFIJP9f/3eapAAMAy+Zeb1BEb0UAAAAASUVORK5CYII=\"\n />\n </defs>\n </svg>\n );\n}\n\nexport default FlexCallIcon;\n","import React from 'react';\n\nfunction SpokePhoneIcon() {\n return (\n <svg\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"20\"\n height=\"20\"\n fill=\"url(#pattern0_1409_127539)\"\n />\n <defs>\n <pattern\n id=\"pattern0_1409_127539\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use xlinkHref=\"#image0_1409_127539\" transform=\"scale(0.0208333)\" />\n </pattern>\n <image\n id=\"image0_1409_127539\"\n width=\"48\"\n height=\"48\"\n xlinkHref=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMC1jMDAwIDc5LjE3MWMyN2ZhYiwgMjAyMi8wOC8xNi0yMjozNTo0MSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmMzg5ZGMzYi00MjFjLWNkNDctOTg3MS1kODc1MmUzMTRlODciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTU4MzY4MkUwN0E4MTFFRkFGRjM5MjYzRUNBMjBFNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTU4MzY4MkQwN0E4MTFFRkFGRjM5MjYzRUNBMjBFNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI0LjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGNiMDQ4MTktZjU2Yi1mMTQ4LTgyM2MtMWY4NmQ5M2RmOGM4IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OTgwMTI0ODgtMGE1MC02MDRlLWE0ZDktNTM1NzE3YmM0NTUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+BHymtAAABENJREFUeNrUWmtIFUEU3jWVm2EvE1SIMntQmUERPRFKiIpeVKTgn+hdagVGPy5lFFGRYC+hIKT+FEIQlCn1R38UYVhEZS/BrMwEzaikumV2O0fPwjTNzu7eO7vXe+Dz7szOPTvfzpw5j6seDAa1aJYYLcol6gnEKtOUl4F/SwB+xXM8CjisVTa7TAAfomkHXHjJh2ieJaKbujIjzstgFR0EvFGgNRuwqe+qsll3ewUCAB+twhFFOn8RgYCXRvxOoa4hkTiF4hTq8nGfrm4hN6QGsB7Q6yWBgEJdLQS5H9B1fRZ8FAJGWij8BCgHNPA3grnjjMsswGWvHVmBjclrNAaJbsA5m+zXfYAEQKuiOV6VrYJBYKgDhUgiHfCa698NOE3XhQpf8kZADqBNRiDg8PSYJiBwBnCN/MBKRZPHlZwEqAeMlhH4Dkhk+tF5dDDtVYDNTDsTcF2g7z1gG0GF4Fa9CEix8gNfuf5krv2Ua09F2/fARgfR528rAu1cf5rgOOtm2olkB6xUAW4DlkQiH2izIIAnzjOBHbCyHLAYMHYgEMgQjG3k2pkmDqwnEgSauP7JnJfG/Z7EjZliovObwvlZ6oplbOAjYBTjlCYAXtCYIsAi7rs9kgRkh80JVgNO0PV4QAV3P8UqQIzlTpqFTDuLjkW/YLvg5M9zfUsBdYCJBLsJC+o6SaFztsm4VjvhNH9UovcrFUwej9z95FxYaSa33+Vwm5QBtgM6Bfe6SOdcOytQT0tvLFeqYHw7bZE2k7eEoe8CwEwHK7AGcI7boqX0jIeAuzIFfTkxRKNG2y9h20gVgm7RTSYadSKDAVcAq7l+PIrf/tNjUpXgM7JakwfVUozTrfgU/AFYR06QleGhFrYeAL5wffcAp2TuPEzppeDvRjh+QGNijmqBT/B54JNwG1Uynj8kAig3aWkNGUHG6bYEKfqscZKf8EZsSD6Wqrhzfxf5BfeZOCi2xUjSuA6uVLJ3IFYxYiQVsUuCAC9/oBGQvdE7gHnkmAxZq/VX3uocPmc2YCclKC8BT8ivtDgxWCc2wCYuZ7lIFFcHK9GPbT4Dg8LjgHjBPfQrz3lCTmzAioBGgdkxbgJIAgu4j2xUMMoEobiZfMbiAMypIVwbYKWJHBn7WuIpoMuRfC+OQpMkBztiONWoNJUEDHu4ICCxB7DVJF4voJIIKzWk574kLElSaQO8LKPQVxdEouW0n0VlGI0iS7SdP0yWl07h+hbOD6xwi4ARAhcJwosgnU6NVJljVxdD42JJiljlJQGN3pxfVnDi8tpikxwibAKh/sDRQvv/lo1zHPPqYW558VBXgK/SYSY3xmLcT8Arrf/Hvw+U3XVSf4XXW+g/PYD5gFwVha1IEGCJzKD8do6J91VKQPW+DNJxiUggEtO1/jJksk0dXV7bgF1JoYg2jSoeqeR544msj0o25U5CCT3a/93mrwADAMZIGmceO/l7AAAAAElFTkSuQmCC\"\n />\n </defs>\n </svg>\n );\n}\n\nexport default SpokePhoneIcon;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { CopyIcon } from '../../assets/icons';\nimport useCopyToClipboard from '../hooks/useCopyToClipboard';\n\ninterface IProps {\n text: string | number;\n}\n\nfunction CopyText(props: IProps) {\n const copy = useCopyToClipboard();\n\n return (\n <IconContainer onClick={() => copy(props.text)}>\n <CopyIcon fill=\"#6396e5\" />\n </IconContainer>\n );\n}\n\nconst IconContainer = styled.div`\n cursor: pointer;\n`;\n\nexport default CopyText;\n","function useCopyToClipboard() {\n const copy = async (text: any) => {\n if (navigator.clipboard) {\n try {\n await navigator.clipboard.writeText(text);\n } catch (err) {\n console.log('Failed to copy text: ', err);\n }\n } else {\n console.log('Clipboard API is not supported');\n }\n };\n\n return copy;\n}\n\nexport default useCopyToClipboard;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CopyText from '../../../../../common/copy/CopyText';\nimport { useOrderDetails } from '../../../store';\n\nfunction RecipientName() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const orderRecipient = orderDetails?.order_recipient;\n\n const showCopyIcon =\n orderRecipient?.recipient_name !== undefined &&\n orderRecipient?.recipient_name!?.length > 0;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { recipient_name: val }\n : { ...orderRecipient, recipient_name: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n };\n\n return (\n <Container>\n <Wrapper>\n <Label label=\"Recipient Name\" htmlFor=\"recipient-name\" />\n {showCopyIcon && <CopyText text={orderRecipient?.recipient_name!} />}\n </Wrapper>\n <InputStyled\n name=\"recipient-name\"\n type=\"text\"\n placeholder=\"Recipient Name\"\n value={orderRecipient?.recipient_name || ''}\n onChange={onChange}\n autoComplete=\"off\"\n />\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\nconst InputStyled = styled(Input)`\n /* Hide autofill suggestions in Safari */\n border-radius: 25px;\n &:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 100px white inset;\n -webkit-text-fill-color: black;\n }\n\n &:-webkit-autofill::first-line {\n font-family: 'inherit';\n font-size: inherit;\n }\n`;\nexport default RecipientName;\n","import { Label, TextArea } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CopyText from '../../../../../../common/copy/CopyText';\nimport { useOrderDetails } from '../../../../store';\n\nfunction Address() {\n // show copy icon if there is input value\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const orderRecipient = orderDetails?.order_recipient;\n\n const showCopyIcon =\n orderRecipient?.address !== undefined &&\n orderRecipient?.address !== null &&\n orderRecipient?.address?.length > 0;\n\n const onChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { address: val }\n : { ...orderRecipient, address: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n };\n\n return (\n <Container>\n <Wrapper>\n <Label label=\"Address\" htmlFor=\"address\" />\n {showCopyIcon && <CopyText text={orderRecipient?.address!} />}\n </Wrapper>\n <TextContainer\n name=\"address\"\n placeholder=\"Address\"\n value={orderRecipient?.address || ''}\n onChange={onChange}\n />\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\nconst TextContainer = styled(TextArea)`\n resize: none;\n height: 70%;\n border-radius: 15px;\n`;\n\nexport default Address;\n","import { Input, Label, useAxios } from '@bjsdistribution/dms-component-library';\nimport React, { useRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport CopyText from '../../../../../../common/copy/CopyText';\nimport { errorAtom, useOrderDetails } from '../../../../store';\nimport {\n useAtom,\n useClientPortal,\n useIsShowNorthSouth,\n} from '../../../../../store';\nimport { ApiResponse } from '../../../../types';\nimport { message } from 'antd';\nimport { getProjectEnv } from '@bjsdistribution/dms-component-library';\nimport { POSTCODE_LABEL } from '../../../../../../common/utils';\n\nconst POSTCODE_REGEX = {\n UK: /\\b(?:[A-Za-z][A-HJ-Ya-hj-y]?[0-9][0-9A-Za-z]? ?[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})\\b/,\n IRISH: /^(?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$/,\n US: /^\\d{5}(-\\d{4})?$/,\n};\n\nfunction Postcode() {\n const environment = getProjectEnv();\n\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [isClientPortal] = useClientPortal();\n const [errors, setErrors] = useAtom(errorAtom);\n const orderRecipient = orderDetails?.order_recipient;\n const isInvalidOrder = orderDetails?.invalid_order;\n const [, setIsNorthSouth] = useIsShowNorthSouth();\n const prevPostcodeRef = useRef<string | undefined>(undefined);\n\n const showCopyIcon =\n orderRecipient?.postcode !== undefined &&\n orderRecipient?.postcode !== null &&\n orderRecipient?.postcode?.length > 0;\n\n const isDevelopmentOrStagingOrReleaseUK =\n environment === 'development' ||\n environment === 'staging' ||\n environment === 'release_uk';\n\n const isValidPostcode = (val: any) => {\n if (isDevelopmentOrStagingOrReleaseUK) {\n return POSTCODE_REGEX.UK.test(val) || POSTCODE_REGEX.IRISH.test(val);\n } else {\n return POSTCODE_REGEX.US.test(val);\n }\n };\n\n const showErr = () => {\n setErrors(prevErrors => ({\n ...prevErrors,\n postCodeError: `Invalid ${POSTCODE_LABEL.toLowerCase()} format`,\n }));\n };\n\n const clearErr = () => {\n setErrors(prevErrors => ({\n ...prevErrors,\n postCodeError: '',\n }));\n };\n\n const validatePostcode = (val: any) => {\n if (isValidPostcode(val)) {\n clearErr();\n } else {\n showErr();\n }\n };\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { postcode: val }\n : { ...orderRecipient, postcode: val }),\n };\n\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n\n validatePostcode(val);\n };\n\n const hasError = !!isInvalidOrder;\n\n const { fetchData: callCheckPostcode } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/customs/postcode/check/`,\n method: 'GET',\n });\n const callCheckPostcodeAPI = async () => {\n try {\n const response = await callCheckPostcode({\n endPointQuery: `?postcode=${orderRecipient?.postcode}`,\n });\n //@ts-ignore\n if (response?.code === 200) {\n //@ts-ignore\n const isNorthSouth = response?.data?.order_customs_postcodes;\n setIsNorthSouth(isNorthSouth);\n\n message.open({\n type: 'success',\n //@ts-ignore\n content: isNorthSouth\n ? //@ts-ignore\n `${response?.message} - Northern/Southern Ireland ${POSTCODE_LABEL.toLowerCase()} found`\n : //@ts-ignore\n response?.message || 'Success',\n });\n } else {\n message.open({\n type: 'error',\n //@ts-ignore\n content: response?.error || 'Something went wrong',\n });\n }\n } catch (err) {\n message.open({\n type: 'error',\n content: `Failed to check ${POSTCODE_LABEL.toLowerCase()}. Please try again.`,\n });\n }\n };\n\n return (\n <Container>\n <Wrapper>\n <Label label={POSTCODE_LABEL} htmlFor=\"postcode\" />\n {showCopyIcon && <CopyText text={orderRecipient?.postcode!} />}\n </Wrapper>\n <InputContainer\n name=\"postcode\"\n type=\"text\"\n placeholder={`Enter ${POSTCODE_LABEL}`}\n value={orderRecipient?.postcode || ''}\n onChange={onChange}\n autoComplete=\"off\"\n style={{ width: '100%' }}\n disabled={isClientPortal}\n hasError={hasError}\n onBlur={async () => {\n const currentPostcode = orderRecipient?.postcode?.trim();\n if (\n currentPostcode &&\n isValidPostcode(currentPostcode) &&\n currentPostcode !== prevPostcodeRef.current\n ) {\n await callCheckPostcodeAPI();\n }\n prevPostcodeRef.current = currentPostcode;\n }}\n />\n {errors.postCodeError && <ErrorText>{errors.postCodeError}</ErrorText>}\n </Container>\n );\n}\n\nconst InputContainer = styled(Input)<{ hasError?: boolean }>`\n ${({ hasError }) =>\n hasError &&\n css`\n border: 1px solid rgb(253, 154, 154);\n background-color: #fff5f5;\n `}\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n// const ErrorText = styled.span`\n// color: red;\n// font-size: 0.85rem;\n// margin-top: 4px;\n// `;\n\nexport default Postcode;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\n\nfunction Latitude() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const orderRecipient = orderDetails?.order_recipient;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { latitude: val }\n : { ...orderRecipient, latitude: val }),\n };\n setOrderDetails(prev => ({\n ...prev,\n order_recipient: updatedOrderRecipient,\n }));\n };\n\n return (\n <Container>\n <Label label=\"Latitude\" htmlFor=\"lat\" />\n <CustomInput\n name=\"lat\"\n type=\"number\"\n placeholder=\"Latitude\"\n onKeyDown={handleKeyDown}\n value={orderRecipient?.latitude || ''}\n onChange={onChange}\n readOnly\n />\n </Container>\n );\n}\n\nconst CustomInput = styled(Input)`\n width: 100%;\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n opacity: 0.8;\n background-color: #f4f4f4;\n pointer-events: none;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default Latitude;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\n\nfunction Longitude() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const orderRecipient = orderDetails?.order_recipient;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { longitude: val }\n : { ...orderRecipient, longitude: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n };\n return (\n <Container>\n <Label label=\"Longitude\" htmlFor=\"long\" />\n <CustomInput\n name=\"long\"\n type=\"number\"\n placeholder=\"Longitude\"\n onKeyDown={handleKeyDown}\n value={orderRecipient?.longitude || ''}\n onChange={onChange}\n readOnly\n />\n </Container>\n );\n}\n\nconst CustomInput = styled(Input)`\n width: 100%;\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n opacity: 0.8;\n background-color: #f4f4f4;\n pointer-events: none;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default Longitude;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport What3WordsIcon from '../../../../../../assets/icons/What3WordsIcon';\nimport {\n errorAtom,\n useAtom,\n useCurrentAction,\n useOrderDetails,\n} from '../../../../store';\nimport { sanitizeInput } from '../../../../utils';\nimport { useClientPortal } from '../../../../../store';\n\nfunction What3words() {\n const w3wRegex = /^\\/{0,}[^0-9`~!@#$%^&*()+\\-_=[{\\]}\\\\|'<,.>?/\";:£§º©®\\s]{1,}[・.。][^0-9`~!@#$%^&*()+\\-_=[{\\]}\\\\|'<,.>?/\";:£§º©®\\s]{1,}[・.。][^0-9`~!@#$%^&*()+\\-_=[{\\]}\\\\|'<,.>?/\";:£§º©®\\s]{1,}$/;\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [errors, setErrors] = useAtom(errorAtom);\n const [isClientPortal] = useClientPortal();\n const orderRecipient = orderDetails?.order_recipient;\n const [, setCurrentAction] = useCurrentAction();\n\n const cleanW3WAddress = (w3wStr: string) => {\n if (w3wStr.startsWith('///')) {\n return w3wStr.slice(3);\n } else if (w3wStr.startsWith('//')) {\n return w3wStr.slice(2);\n } else if (w3wStr.startsWith('/')) {\n return w3wStr.slice(1);\n }\n return w3wStr;\n };\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let val = sanitizeInput(e.target.value);\n validateInput(val);\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { what_3words_address: val }\n : { ...orderRecipient, what_3words_address: cleanW3WAddress(val) }),\n };\n\n setOrderDetails(prev => ({\n ...prev,\n order_recipient: updatedOrderRecipient,\n }));\n };\n\n const validateInput = (value: string) => {\n if (value.trim()) {\n const isValid = w3wRegex.test(value);\n setErrors(prev => ({\n ...prev,\n w3wError: isValid\n ? ''\n : 'Please enter a valid input (format: word.word.word)',\n }));\n } else {\n setErrors(prev => ({\n ...prev,\n w3wError: 'Input cannot be empty or only spaces',\n }));\n }\n };\n\n // const handleOpenModal = () => {\n // dispatch({ type: 'what3Words' });\n // };\n\n return (\n <Container>\n <Label\n style={{ color: '#6396e5', cursor: 'pointer' }}\n label=\"What3Words Address\"\n htmlFor=\"w3w\"\n onClick={() => setCurrentAction('what3Words')}\n />\n <Wrapper>\n <What3wordsPrefix>\n <What3WordsIcon />\n </What3wordsPrefix>\n <CustomInput\n name=\"w3w\"\n type=\"text\"\n placeholder=\"Format: word.word.word\"\n value={orderRecipient?.what_3words_address || ''}\n onChange={onChange}\n disabled={isClientPortal}\n />\n </Wrapper>\n {errors.w3wError && <ErrorText>{errors.w3wError}</ErrorText>}\n </Container>\n );\n}\n\nconst What3wordsPrefix = styled.div`\n position: absolute;\n top: 13px;\n left: 12px;\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n`;\n\nconst CustomInput = styled(Input)`\n /* border-radius: 25px; */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n padding-left: 40px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default What3words;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Address from './Address';\nimport Postcode from './Postcode';\nimport Latitude from './Latitude';\nimport Longitude from './Longitude';\nimport What3words from './What3words';\n\nfunction LocationDetails() {\n return (\n <Container>\n <Address />\n <Right>\n <RightColumn>\n <Postcode />\n <What3words />\n </RightColumn>\n <RightColumn>\n <Latitude />\n <Longitude />\n </RightColumn>\n </Right>\n </Container>\n );\n}\n\nconst RightColumn = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nconst Right = styled.div`\n display: flex;\n gap: 10px;\n`;\n\nconst Container = styled.div`\n display: flex;\n gap: 15px;\n`;\n\nexport default LocationDetails;\n","import styled from 'styled-components';\nimport React from 'react';\nimport { FlexCallIcon, SpokePhoneIcon } from '../../../../../../assets/icons';\n\nfunction CallCustomer() {\n return (\n <Container>\n <FlexCallIcon />\n <SpokePhoneIcon />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n gap: 7px;\n`;\n\nexport default CallCustomer;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n errorAtom,\n useAtom,\n useOrderDetails,\n usePrevOrderDetails,\n} from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\nimport { useClientPortal } from '../../../../../store';\n\n//import { VALIDATE_UK_IRISH_NUMBER_REGEX } from '../../../helper';\nimport CallCustomer from './CallCustomer';\nimport { Tooltip } from 'antd';\n\nfunction ContactHome() {\n const [errors, setErrors] = useAtom(errorAtom);\n const [isClientPortal] = useClientPortal();\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails] = usePrevOrderDetails();\n const apiContactHome = prevOrderDetails?.order_recipient?.contact_home;\n const orderRecipient = orderDetails?.order_recipient;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let val = e.target.value.replace(/\\s+/g, '');\n console.log(val, 'valuee');\n\n if (!/^\\+?\\d*$/.test(val)) return;\n\n const validPrefixes = ['+44', '44', '0', '+353', '353'];\n\n let matchedPrefix = validPrefixes.find(prefix => val.startsWith(prefix));\n let prefix = matchedPrefix || '';\n let numberPart = val.slice(prefix.length);\n\n const digitLimit = prefix === '+353' || prefix === '353' ? 9 : 10;\n\n if (numberPart.length > digitLimit) return;\n\n const contactValue = val;\n\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_home: contactValue }\n : { ...orderRecipient, contact_home: contactValue }),\n };\n\n setOrderDetails(prev => ({\n ...prev,\n order_recipient: updatedOrderRecipient,\n }));\n\n if (!numberPart) {\n setErrors(prev => ({ ...prev, homeContactError: '' }));\n } else if (numberPart.length !== digitLimit) {\n setErrors(prev => ({\n ...prev,\n homeContactError: `Number must have exactly ${digitLimit} digits after the prefix.`,\n }));\n } else {\n setErrors(prev => ({ ...prev, homeContactError: '' }));\n }\n };\n\n return (\n <Container>\n <Wrapper>\n <Label label=\"Contact Home\" htmlFor=\"contact-home\" />\n </Wrapper>\n <InputContainer>\n <CustomInput\n name=\"contact-home\"\n // maxLength={12}\n type=\"text\"\n placeholder=\"Home Number\"\n onKeyDown={handleKeyDown}\n value={orderRecipient?.contact_home || ''}\n onChange={onChange}\n disabled={isClientPortal}\n />\n {/* \n <CallCustomer /> */}\n {apiContactHome &&\n (() => {\n const rawNumber = apiContactHome.replace(/\\s+/g, '');\n\n let formattedNumber = rawNumber.replace(/\\D/g, ''); // digits only\n let prefix = '';\n let numberPart = '';\n\n if (rawNumber.startsWith('+44')) {\n prefix = '+44';\n numberPart = formattedNumber.slice(2);\n } else if (rawNumber.startsWith('44')) {\n prefix = '44';\n numberPart = formattedNumber.slice(2);\n } else if (rawNumber.startsWith('0')) {\n prefix = '0';\n numberPart = formattedNumber.slice(1);\n } else if (rawNumber.startsWith('+353')) {\n prefix = '+353';\n numberPart = formattedNumber.slice(3);\n } else if (rawNumber.startsWith('353')) {\n prefix = '353';\n numberPart = formattedNumber.slice(3);\n } else {\n numberPart = formattedNumber;\n }\n\n // Set digit limit based on prefix\n const digitLimit = prefix === '+353' || prefix === '353' ? 9 : 10;\n\n if (numberPart.length !== digitLimit) return null;\n\n let hrefPrefix = '';\n\n if (prefix === '0' || prefix === '44' || prefix === '+44') {\n hrefPrefix = '+44';\n } else if (prefix === '353' || prefix === '+353') {\n hrefPrefix = '+353';\n } else {\n hrefPrefix = '+44';\n }\n\n const finalHref = `tel:${hrefPrefix}${numberPart}`;\n\n return (\n <Tooltip placement=\"top\" title={<span>Zoom</span>}>\n <a href={finalHref} style={{ cursor: 'pointer' }}>\n <CallCustomer />\n </a>\n </Tooltip>\n );\n })()}\n </InputContainer>\n {errors.homeContactError && (\n <ErrorText>{errors.homeContactError}</ErrorText>\n )}\n </Container>\n );\n}\n\nconst InputContainer = styled.div`\n display: flex;\n gap: 7px;\n align-items: center;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst CustomInput = styled(Input)`\n width: 80%;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactHome;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n errorAtom,\n useAtom,\n useOrderDetails,\n usePrevOrderDetails,\n} from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\nimport { useClientPortal } from '../../../../../store';\nimport { Tooltip } from 'antd';\nimport CallCustomer from './CallCustomer';\n\nfunction ContactWork() {\n const [errors, setErrors] = useAtom(errorAtom);\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [isClientPortal] = useClientPortal();\n const orderRecipient = orderDetails?.order_recipient;\n const [prevOrderDetails] = usePrevOrderDetails();\n const apiContactWork = prevOrderDetails?.order_recipient?.contact_work;\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let val = e.target.value.replace(/\\s+/g, '');\n\n if (!/^\\+?\\d*$/.test(val)) return;\n\n const validPrefixes = ['+44', '44', '0', '+353', '353'];\n\n let matchedPrefix = validPrefixes.find(prefix => val.startsWith(prefix));\n let prefix = matchedPrefix || '';\n let numberPart = val.slice(prefix.length);\n\n const digitLimit = prefix === '+353' || prefix === '353' ? 9 : 10;\n\n if (numberPart.length > digitLimit) return;\n\n const contactValue = val;\n\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_work: contactValue }\n : { ...orderRecipient, contact_work: contactValue }),\n };\n\n setOrderDetails(prev => ({\n ...prev,\n order_recipient: updatedOrderRecipient,\n }));\n if (!numberPart) {\n setErrors(prev => ({ ...prev, workCOntanctError: '' }));\n } else if (numberPart.length !== digitLimit) {\n setErrors(prev => ({\n ...prev,\n workCOntanctError: `Number must have exactly ${digitLimit} digits after the prefix.`,\n }));\n } else {\n setErrors(prev => ({ ...prev, workCOntanctError: '' }));\n }\n };\n return (\n <Container>\n <Wrapper>\n <Label label=\"Contact Work\" htmlFor=\"contact-work\" />\n </Wrapper>\n <InputContainer>\n <CustomInput\n name=\"contact-work\"\n type=\"text\"\n placeholder=\"Work Number\"\n onKeyDown={handleKeyDown}\n value={orderRecipient?.contact_work || ''}\n onChange={onChange}\n // minLength={10}\n // maxLength={10}\n disabled={isClientPortal}\n />\n {apiContactWork &&\n (() => {\n const rawNumber = apiContactWork.replace(/\\s+/g, '');\n\n let formattedNumber = rawNumber.replace(/\\D/g, '');\n let prefix = '';\n let numberPart = '';\n\n if (rawNumber.startsWith('+44')) {\n prefix = '+44';\n numberPart = formattedNumber.slice(2);\n } else if (rawNumber.startsWith('44')) {\n prefix = '44';\n numberPart = formattedNumber.slice(2);\n } else if (rawNumber.startsWith('0')) {\n prefix = '0';\n numberPart = formattedNumber.slice(1);\n } else if (rawNumber.startsWith('+353')) {\n prefix = '+353';\n numberPart = formattedNumber.slice(3);\n } else if (rawNumber.startsWith('353')) {\n prefix = '353';\n numberPart = formattedNumber.slice(3);\n } else {\n numberPart = formattedNumber;\n }\n\n // Set digit limit based on prefix\n const digitLimit = prefix === '+353' || prefix === '353' ? 9 : 10;\n\n if (numberPart.length !== digitLimit) return null;\n\n let hrefPrefix = '';\n\n if (prefix === '0' || prefix === '44' || prefix === '+44') {\n hrefPrefix = '+44';\n } else if (prefix === '353' || prefix === '+353') {\n hrefPrefix = '+353';\n } else {\n hrefPrefix = '+44';\n }\n\n const finalHref = `tel:${hrefPrefix}${numberPart}`;\n\n return (\n <Tooltip placement=\"top\" title={<span>Zoom</span>}>\n <a href={finalHref} style={{ cursor: 'pointer' }}>\n <CallCustomer />\n </a>\n </Tooltip>\n );\n })()}\n </InputContainer>\n {errors.workCOntanctError && (\n <ErrorText>{errors.workCOntanctError}</ErrorText>\n )}\n </Container>\n );\n}\n\nconst InputContainer = styled.div`\n display: flex;\n gap: 7px;\n align-items: center;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst CustomInput = styled(Input)`\n width: 100%;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactWork;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CopyText from '../../../../../../common/copy/CopyText';\nimport CallCustomer from './CallCustomer';\nimport {\n errorAtom,\n useAtom,\n useOrderDetails,\n usePrevOrderDetails,\n} from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\nimport { useClientPortal } from '../../../../../store';\nimport { Tooltip } from 'antd';\n\nfunction ContactMobile() {\n const [errors, setErrors] = useAtom(errorAtom);\n const [isClientPortal] = useClientPortal();\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails] = usePrevOrderDetails();\n const apiContactMobile = prevOrderDetails?.order_recipient?.contact_mobile;\n const orderRecipient = orderDetails?.order_recipient;\n\n const showCopyIcon =\n orderRecipient?.contact_mobile !== undefined &&\n orderRecipient?.contact_mobile !== null &&\n orderRecipient?.contact_mobile?.length > 0;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let val = e.target.value.replace(/\\s+/g, '');\n\n if (!/^\\+?\\d*$/.test(val)) return;\n\n const validPrefixes = ['+44', '44', '0', '+353', '353'];\n\n let matchedPrefix = validPrefixes.find(prefix => val.startsWith(prefix));\n let prefix = matchedPrefix || '';\n let numberPart = val.slice(prefix.length);\n\n const digitLimit = prefix === '+353' || prefix === '353' ? 9 : 10;\n\n if (numberPart.length > digitLimit) return;\n\n const contactValue = val;\n\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_mobile: contactValue }\n : { ...orderRecipient, contact_mobile: contactValue }),\n };\n\n setOrderDetails(prev => ({\n ...prev,\n order_recipient: updatedOrderRecipient,\n }));\n\n // Validation errors\n if (!numberPart) {\n setErrors(prev => ({ ...prev, mobileError: '' }));\n } else if (numberPart.length !== digitLimit) {\n setErrors(prev => ({\n ...prev,\n mobileError: `Number must have exactly ${digitLimit} digits after the prefix.`,\n }));\n } else {\n setErrors(prev => ({ ...prev, mobileError: '' }));\n }\n };\n\n return (\n <Container>\n <Wrapper>\n <Label label=\"Contact Mobile\" htmlFor=\"contact-mobile\" />\n {showCopyIcon && <CopyText text={orderRecipient?.contact_mobile!} />}\n </Wrapper>\n <InputContainer>\n <CustomInput\n name=\"contact-mobile\"\n // maxLength={12}\n type=\"text\"\n placeholder=\"Mobile Number\"\n onKeyDown={handleKeyDown}\n value={orderRecipient?.contact_mobile || ''}\n onChange={onChange}\n disabled={isClientPortal}\n />\n\n {apiContactMobile &&\n (() => {\n const rawNumber = apiContactMobile.replace(/\\s+/g, '');\n\n let formattedNumber = rawNumber.replace(/\\D/g, '');\n let prefix = '';\n let numberPart = '';\n\n if (rawNumber.startsWith('+44')) {\n prefix = '+44';\n numberPart = formattedNumber.slice(2);\n } else if (rawNumber.startsWith('44')) {\n prefix = '44';\n numberPart = formattedNumber.slice(2);\n } else if (rawNumber.startsWith('0')) {\n prefix = '0';\n numberPart = formattedNumber.slice(1);\n } else if (rawNumber.startsWith('+353')) {\n prefix = '+353';\n numberPart = formattedNumber.slice(3);\n } else if (rawNumber.startsWith('353')) {\n prefix = '353';\n numberPart = formattedNumber.slice(3);\n } else {\n numberPart = formattedNumber;\n }\n\n // Set digit limit based on prefix\n const digitLimit = prefix === '+353' || prefix === '353' ? 9 : 10;\n\n if (numberPart.length !== digitLimit) return null;\n\n let hrefPrefix = '';\n\n if (prefix === '0' || prefix === '44' || prefix === '+44') {\n hrefPrefix = '+44';\n } else if (prefix === '353' || prefix === '+353') {\n hrefPrefix = '+353';\n } else {\n hrefPrefix = '+44';\n }\n\n const finalHref = `tel:${hrefPrefix}${numberPart}`;\n\n return (\n <Tooltip placement=\"top\" title={<span>Zoom</span>}>\n <a href={finalHref} style={{ cursor: 'pointer' }}>\n <CallCustomer />\n </a>\n </Tooltip>\n );\n })()}\n </InputContainer>\n\n {errors.mobileError && <ErrorText>{errors.mobileError}</ErrorText>}\n </Container>\n );\n}\n\nconst InputContainer = styled.div`\n display: flex;\n gap: 7px;\n align-items: center;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst CustomInput = styled(Input)`\n width: 80%;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactMobile;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { errorAtom, useAtom, useOrderDetails } from '../../../../store';\nimport { sanitizeInput } from '../../../../utils';\n\nfunction ContactEmail() {\n const emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i;\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [errors, setErrors] = useAtom(errorAtom);\n const orderRecipient = orderDetails?.order_recipient;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let val = sanitizeInput(e.target.value);\n validateInput(val);\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_email: val }\n : { ...orderRecipient, contact_email: val }),\n };\n setOrderDetails(prev => ({\n ...prev,\n order_recipient: updatedOrderRecipient,\n }));\n };\n\n const validateInput = (value: string) => {\n const isValid = emailRegex.test(value);\n setErrors(prev => ({\n ...prev,\n emailError: value && !isValid ? 'Please enter a valid Email Address' : '',\n }));\n };\n\n return (\n <Container>\n <Wrapper>\n <Label label=\"Email\" htmlFor=\"email-id\" />\n </Wrapper>\n <Input\n name=\"email-id\"\n type=\"email\"\n placeholder=\"Email\"\n value={orderRecipient?.contact_email || ''}\n onChange={onChange}\n />\n {errors.emailError && <ErrorText>{errors.emailError}</ErrorText>}\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactEmail;\n","import styled from 'styled-components';\nimport React from 'react';\nimport ContactHome from './ContactHome';\nimport ContactWork from './ContactWork';\nimport ContactMobile from './ContactMobile';\nimport ContactEmail from './ContactEmail';\n\nfunction ContactDetails() {\n return (\n <Container>\n <GroupedInputs>\n <ContactHome />\n <ContactWork />\n </GroupedInputs>\n <GroupedInputs>\n <ContactMobile />\n <ContactEmail />\n </GroupedInputs>\n </Container>\n );\n}\n\nconst GroupedInputs = styled.div`\n display: flex;\n gap: 15px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nexport default ContactDetails;\n","import React from 'react';\nimport { FormSection } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport Header from '../../common/Header';\nimport RecipientName from './RecipientName';\nimport LocationDetails from './location-info';\nimport ContactDetails from './contact-info';\n\nfunction CustomerSection() {\n return (\n <CustomFormSection>\n <Header label=\"Customer\" />\n <FormInputs>\n <RecipientName />\n <LocationDetails />\n <ContactDetails />\n </FormInputs>\n </CustomFormSection>\n );\n}\n\nconst FormInputs = styled.div`\n display: flex;\n flex-direction: column;\n gap: 15px;\n`;\n\nconst CustomFormSection = styled(FormSection)`\n flex: 1;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n`;\n\nexport default CustomerSection;\n","import {\n Label,\n displayValueOrNA,\n} from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CopyText from '../../../../../common/copy/CopyText';\nimport { useOrderDetails } from '../../../store';\n\nfunction ConsignmentNumber() {\n const [orderDetails] = useOrderDetails();\n return (\n <Container>\n <Wrapper>\n <Label label=\"Consignment Number\" />\n <CopyText text={displayValueOrNA(orderDetails.consignment)} />\n </Wrapper>\n <Consignment>{displayValueOrNA(orderDetails.consignment)}</Consignment>\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Consignment = styled.span`\n color: #249e45;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default ConsignmentNumber;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../store';\nimport CopyText from '../../../../../common/copy/CopyText';\n\nfunction RecipientReference() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const orderRecipient = orderDetails?.recipient_reference;\n const showCopyIcon =\n orderRecipient !== undefined &&\n orderRecipient !== null &&\n orderRecipient?.length > 0;\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n recipient_reference: e.target.value,\n };\n });\n };\n return (\n <Container>\n <Wrapper>\n <Label label=\"Recipient Reference\" htmlFor=\"recipient-reference\" />\n {showCopyIcon && <CopyText text={orderRecipient!} />}\n </Wrapper>\n <Input\n name=\"recipient-reference\"\n type=\"text\"\n placeholder=\"Enter Recipient Reference\"\n value={orderDetails.recipient_reference || ''}\n onChange={onChange}\n style={{ borderRadius: '25px' }}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nexport default RecipientReference;\n","import {\n Label,\n SelectDropdown,\n dropdownStyles,\n} from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useDepotOptions, useOrderDetails } from '../../../store';\n\nfunction DepotDropdown() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [depotOptions] = useDepotOptions();\n const onChange = (e: any) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n depot_id: e.value,\n };\n });\n };\n return (\n <FormContainer>\n <Label label=\"Depot\" htmlFor=\"depotDropdown\" />\n <StyledSelectDropdown\n placeholder=\"Select Depot\"\n inputId=\"depotDropdown\"\n openMenuOnFocus={false}\n value={depotOptions.filter(\n (x: any) => x.value === orderDetails.depot_id\n )}\n options={depotOptions || []}\n onChange={onChange}\n styles={{\n ...dropdownStyles,\n\n control: (styles: any) => ({\n ...styles,\n borderRadius: '25px',\n cursor: 'pointer',\n }),\n }}\n />\n </FormContainer>\n );\n}\n\nconst FormContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\nexport const StyledSelectDropdown = styled(SelectDropdown)`\n min-width: 160px;\n`;\nexport default DepotDropdown;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../store';\nimport { handleKeyDown } from '../../../utils';\n\nfunction Droptime() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n drop_time: e.target.value,\n };\n });\n };\n\n return (\n <Container>\n <Label label=\"Droptime\" htmlFor=\"droptime\" />\n <CustomInput\n name=\"droptime\"\n type=\"number\"\n placeholder=\"0\"\n onKeyDown={handleKeyDown}\n value={orderDetails?.drop_time || ''}\n onChange={onChange}\n />\n </Container>\n );\n}\n\nconst CustomInput = styled(Input)`\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default Droptime;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Label } from '@bjsdistribution/dms-component-library';\nimport { DatePicker, DatePickerProps } from 'antd';\nimport {\n useOrderDetails,\n usePrevOrderDetails,\n useStatusDetails,\n} from '../../../store';\nimport dayjs from 'dayjs';\nimport { useClientPortal } from '../../../../store';\n\nfunction DeliveryDate() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails] = usePrevOrderDetails();\n const [orderStatus] = useStatusDetails();\n const [isClientPortal] = useClientPortal();\n\n const actionDate = orderDetails?.action_date\n ? new Date(orderDetails?.action_date)\n : null;\n\n const onChange: DatePickerProps['onChange'] = (date, _dateString) => {\n const selectedDate = date?.format('YYYY-MM-DDTHH:mm:ss');\n if (\n selectedDate !== undefined &&\n prevOrderDetails.action_date !== undefined\n ) {\n if (\n new Date(selectedDate).toLocaleDateString() ===\n new Date(prevOrderDetails.action_date!).toLocaleDateString()\n ) {\n setOrderDetails(prev => {\n return {\n ...prev,\n action_date: prevOrderDetails.action_date,\n };\n });\n } else {\n setOrderDetails(prev => {\n return {\n ...prev,\n action_date: selectedDate,\n };\n });\n }\n } else {\n setOrderDetails(prev => {\n return {\n ...prev,\n action_date: null,\n };\n });\n }\n };\n\n const order = orderStatus?.[0] || {};\n\n const otherStatuses = [\n order?.released,\n order?.received === true || order?.received === 'True',\n order?.scheduled,\n order?.confirmed,\n order?.delivered,\n order?.completed,\n ].filter(val => val !== undefined);\n\n const allOthersTrue =\n otherStatuses?.length > 0 && otherStatuses?.every(s => s === true);\n\n const isDisabled = isClientPortal\n ? true\n : allOthersTrue && order?.routed === true;\n\n return (\n <MainContainer>\n <Label label=\"Delivery Date\"> </Label>\n <SlotContainer>\n {orderDetails?.order_routes?.slot ? (\n <span style={{ marginLeft: 5, fontSize: '12px', color: '#888' }}>\n Slot : {orderDetails?.order_routes?.slot}\n </span>\n ) : null}\n </SlotContainer>\n\n <DatePicker\n onChange={onChange}\n value={actionDate === null ? actionDate : dayjs(actionDate)}\n format=\"DD/MM/YY\"\n disabledDate={current => current && current < dayjs().startOf('day')}\n allowClear={false}\n disabled={isDisabled}\n />\n </MainContainer>\n );\n}\n\nconst MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n .slotvalue {\n span {\n color: #249e45 !important;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n }\n }\n`;\nconst SlotContainer = styled.div`\n span {\n color: #249e45 !important;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n }\n`;\n\nexport default DeliveryDate;\n","import { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n usegetClientData,\n useOrderDetails,\n useStatusDetails,\n} from '../../../store';\nimport { useClientPortal, useSubContracterData } from '../../../../store';\n\nfunction Carrier() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [subContracterData] = useSubContracterData();\n const [orderStatus] = useStatusDetails();\n const [isClientPortal] = useClientPortal();\n const [clientData] = usegetClientData();\n\n const localClientData = JSON.parse(\n localStorage?.getItem('Client_iD') || '{}'\n );\n const clientId = Number(localClientData?.client_id);\n\n // Build options from subContracterData\n const carrierOptions =\n subContracterData?.map((carrier: any) => ({\n label: carrier?.name,\n value: carrier?.id,\n })) || [];\n\n // find the value which is selected\n const selectedCarrierOption = carrierOptions?.find(\n (option: any) => option?.value === orderDetails?.carrier_id\n );\n\n // get client name when no carrierid found\n const fallbackClientName = clientData?.find(\n (client: any) => Number(client?.client_id) === clientId\n )?.name;\n\n // fall if no carrierid\n const fallbackOption = fallbackClientName\n ? { label: fallbackClientName, value: '' }\n : null;\n\n const onChange = (selectedOption: any) => {\n setOrderDetails(prev => ({\n ...prev,\n carrier_id: selectedOption?.value,\n }));\n };\n\n const order = orderStatus?.[0] || {};\n\n const otherStatuses = [\n order?.released,\n order?.received === true || order?.received === 'True',\n order?.scheduled,\n order?.confirmed,\n order?.delivered,\n order?.completed,\n ].filter(val => val !== undefined);\n\n const allOthersTrue =\n otherStatuses.length > 0 && otherStatuses.every(s => s === true);\n\n const isDisabled = isClientPortal\n ? true\n : allOthersTrue && order?.routed === true;\n\n return (\n <FormContainer>\n <Label label=\"Carrier\" htmlFor=\"CarrierDropdown\" />\n <SelectDropdown\n placeholder=\"Select Carrier\"\n inputId=\"CarrierDropdown\"\n openMenuOnFocus={false}\n value={selectedCarrierOption || fallbackOption || null}\n options={carrierOptions}\n onChange={onChange}\n isDisabled={isDisabled}\n />\n </FormContainer>\n );\n}\n\nconst FormContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default Carrier;\n","import { Input, Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CopyText from '../../../../../common/copy/CopyText';\nimport { useOrderDetails } from '../../../store';\n\nfunction OrderNumber() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const showCopyIcon =\n orderDetails?.order_number !== null &&\n orderDetails?.order_number !== undefined &&\n orderDetails?.order_number?.length > 0;\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n order_number: e.target.value,\n };\n });\n };\n return (\n <Container>\n <Wrapper>\n <Label label=\"Order Number\" htmlFor=\"order-number\" />\n {showCopyIcon && <CopyText text={orderDetails?.order_number!} />}\n </Wrapper>\n <Input\n name=\"order-number\"\n type=\"text\"\n placeholder=\"Order Number\"\n value={orderDetails?.order_number || ''}\n onChange={onChange}\n style={{ borderRadius: '25px' }}\n />\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default OrderNumber;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Label } from '@bjsdistribution/dms-component-library';\nimport { useOrderDetails, usePrevOrderDetails } from '../../../store';\nimport { DatePicker, DatePickerProps } from 'antd';\nimport dayjs from 'dayjs';\n\nfunction ScheduleAfter() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails] = usePrevOrderDetails();\n const scheduleDate = orderDetails?.schedule_after\n ? new Date(orderDetails?.schedule_after)\n : null;\n\n const onChange: DatePickerProps['onChange'] = (date, _dateString) => {\n const selectedDate = date?.format('YYYY-MM-DDTHH:mm:ss');\n if (\n selectedDate !== undefined &&\n prevOrderDetails.schedule_after !== undefined\n ) {\n if (\n new Date(selectedDate).toLocaleDateString() ===\n new Date(prevOrderDetails.schedule_after!).toLocaleDateString()\n ) {\n setOrderDetails(prev => {\n return {\n ...prev,\n schedule_after: prevOrderDetails.schedule_after,\n };\n });\n } else {\n setOrderDetails(prev => {\n return {\n ...prev,\n schedule_after: selectedDate,\n };\n });\n }\n } else {\n setOrderDetails(prev => {\n return {\n ...prev,\n schedule_after: null,\n };\n });\n }\n };\n\n return (\n <MainContainer>\n <Label label=\"Schedule After\" />\n <DatePicker\n onChange={onChange}\n value={scheduleDate === null ? scheduleDate : dayjs(scheduleDate)}\n format=\"DD/MM/YY\"\n disabledDate={current => current && current < dayjs().startOf('day')}\n allowClear={false}\n />\n </MainContainer>\n );\n}\n\nconst MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default ScheduleAfter;\n","export const depotOptions = [\n {\n label: 'BJS COURIERS',\n value: 'bjs_couriers',\n },\n {\n label: 'BRD 01',\n value: 'brd_01',\n },\n {\n label: 'EXE 01',\n value: 'exe_01',\n },\n];\n\nexport const timedServiceOptions = [\n {\n label: 'All Day',\n value: 'all_day',\n },\n {\n label: 'Business Hours',\n value: 'business_hours',\n },\n {\n label: 'AM (07:00 - 12:00)',\n value: 'am',\n },\n {\n label: 'PM (12:00 - 17:00)',\n value: 'pm',\n },\n {\n label: 'Evening (17:00 - 21:00)',\n value: 'evening',\n },\n {\n label: 'Daytime (11:00 - 16:00)',\n value: 'daytime',\n },\n {\n label: 'Morning (07:00 - 12:00)',\n value: 'morning',\n },\n {\n label: 'Late AM (09:00 - 12:00)',\n value: 'late_am',\n },\n {\n label: 'Late PM (15:00 - 20:00)',\n value: 'late_pm',\n },\n];\n\nexport const serviceTypeOptions = [\n {\n label: 'Delivery',\n value: 'delivery',\n },\n {\n label: 'Collection',\n value: 'collection',\n },\n {\n label: 'Exchange',\n value: 'exchange',\n },\n {\n label: 'Service Order',\n value: 'service_order',\n },\n];\n\nexport const deliveryPointOptions = [\n {\n label: 'Room of Choice',\n value: 'roc',\n },\n {\n label: 'Hallway',\n value: 'hallway',\n },\n {\n label: 'Front Door',\n value: 'front_door',\n },\n {\n label: 'Garden',\n value: 'garden',\n },\n];\n\nexport const serviceLevelOptions = [\n {\n label: '1 Man',\n value: '1man',\n },\n {\n label: '1.5 Man',\n value: '1.5man',\n },\n {\n label: '2 Man',\n value: '2man',\n },\n];\n\nexport const assemblyTypeOptions = [\n {\n label: 'Small',\n value: 'small',\n },\n {\n label: 'Medium',\n value: 'medium',\n },\n {\n label: 'Large',\n value: 'large',\n },\n];\n\nexport const vehicleTypeOptions = [\n {\n label: 'LGV',\n value: '1',\n },\n {\n label: 'HGV',\n value: '2',\n },\n];\n","import { Label } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { vehicleTypeOptions } from '../../helper';\nimport { useOrderDetails } from '../../../store';\nimport { StyledSelectDropdown } from './Depot';\n\nfunction VehicleTypeDropdown() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const onChange = (e: any) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n vehicle_type: e.label,\n };\n });\n };\n\n return (\n <FormContainer>\n <Label label=\"Vehicle Type\" htmlFor=\"vehicleType\" />\n <StyledSelectDropdown\n placeholder=\"Select vehicle type\"\n options={vehicleTypeOptions}\n inputId=\"vehicleType\"\n openMenuOnFocus\n value={vehicleTypeOptions?.filter(\n (x: any) => x.label === orderDetails?.vehicle_type\n )}\n onChange={onChange}\n />\n </FormContainer>\n );\n}\n\nconst FormContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default VehicleTypeDropdown;\n","import { FormSection } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport Header from '../../common/Header';\nimport ConsignmentNumber from './ConsignmentNumber';\nimport RecipientReference from './RecipientReference';\nimport DepotDropdown from './Depot';\nimport Droptime from './Droptime';\nimport DeliveryDate from './DeliveryDate';\nimport Carrier from './Carrier';\nimport OrderNumber from './OrderNumber';\nimport ScheduleAfter from './ScheduleAfter';\nimport VehicleTypeDropdown from './VehicleType';\n\nfunction OrdersSection() {\n return (\n <CustomFormSection>\n <Header label=\"Order\" />\n <FormInputs>\n <GroupedInputs>\n <ConsignmentNumber />\n <Carrier />\n </GroupedInputs>\n <GroupedInputs>\n <OrderNumber />\n <DepotDropdown />\n </GroupedInputs>\n <GroupedInputs>\n <DeliveryDate />\n <ScheduleAfter />\n </GroupedInputs>\n <GroupedInputs>\n <Droptime />\n </GroupedInputs>\n <GroupedInputs>\n <RecipientReference />\n <VehicleTypeDropdown />\n </GroupedInputs>\n </FormInputs>\n </CustomFormSection>\n );\n}\n\nconst GroupedInputs = styled.div`\n display: flex;\n gap: 15px;\n`;\n\nconst FormInputs = styled.div`\n display: flex;\n flex-direction: column;\n gap: 15px;\n`;\n\nconst CustomFormSection = styled(FormSection)`\n flex: 1;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n`;\n\nexport default OrdersSection;\n","import { Label, TextArea } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../store';\n\nfunction OrderStatusNote() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n\n const onChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n order_status_note: e.target.value,\n };\n });\n };\n\n return (\n <Container>\n <Label label=\"Order Status Note\" />\n <CustomTextArea\n value={orderDetails?.order_status_note || ''}\n placeholder='add order status note'\n onChange={onChange}\n />\n </Container>\n );\n}\n\nconst CustomTextArea = styled(TextArea)`\n flex: 1;\n resize: none;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default OrderStatusNote;\n","import { Label, TextArea } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../store';\n\nfunction DeliveryInstructions() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n\n const onChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n delivery_instructions: e.target.value,\n };\n });\n };\n\n return (\n <Container>\n <Label label=\"Delivery Instructions\" />\n <CustomTextArea\n value={orderDetails?.delivery_instructions || ''}\n placeholder=\"add delivery instructions\"\n onChange={onChange}\n />\n </Container>\n );\n}\n\nconst CustomTextArea = styled(TextArea)`\n flex: 1;\n resize: none;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default DeliveryInstructions;\n","import { Label, TextArea } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../store';\n\nfunction OtherInstructions() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n\n const onChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setOrderDetails(prev => {\n return {\n ...prev,\n other_instructions: e.target.value,\n };\n });\n };\n\n return (\n <Container>\n <Label label=\"Other Instructions (simple instructions)\" />\n <CustomTextArea\n value={orderDetails?.other_instructions || ''}\n placeholder=\"add other instructions\"\n onChange={onChange}\n />\n </Container>\n );\n}\n\nconst CustomTextArea = styled(TextArea)`\n flex: 1;\n resize: none;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default OtherInstructions;\n","import { FormSection } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport Header from '../../common/Header';\nimport OrderStatusNote from './OrderStatusNote';\nimport DeliveryInstructions from './DeliveryInstructions';\nimport OtherInstructions from './OtherInstructions';\n\nfunction InstructionSection() {\n return (\n <CustomFormSection>\n <Header label=\"Instructions / Notes\" />\n <FormInputs>\n <OrderStatusNote />\n <DeliveryInstructions />\n <OtherInstructions />\n </FormInputs>\n </CustomFormSection>\n );\n}\nconst FormInputs = styled.div`\n display: flex;\n flex-direction: column;\n gap: 7px;\n flex: 1;\n`;\n\nconst CustomFormSection = styled(FormSection)`\n flex: 1;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n padding: 24px !important;\n`;\n\nexport default InstructionSection;\n","import React from 'react';\nimport { useOrderDetails, useOrderStaticData } from '../../../store';\nimport {\n dropdownStyles,\n Label,\n SelectDropdown,\n} from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport { capitalize } from '../../../utils';\n\nfunction convertTo12HourFormat(time24: any) {\n const [hours, minutes] = time24?.split(':')?.map(Number);\n const period = hours >= 12 ? 'PM' : 'AM';\n const hours12 = hours % 12 || 12; // Convert to 12-hour format\n return `${hours12}:${minutes?.toString()?.padStart(2, '0')} ${period}`;\n}\n\nfunction TimedServiceDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [orderData, setOrderData] = useOrderDetails();\n\n const timesServiceId = orderData?.order_services_detail?.timed_service_id;\n\n const timedServicesOptions = orderStaticData?.order_timed_services?.map(\n (option: any) => {\n const startTime = convertTo12HourFormat(option?.start_time);\n const endTime = convertTo12HourFormat(option?.end_time);\n const label = `${capitalize(\n option?.type?.replaceAll('_', ' ')\n )} (${startTime} - ${endTime})`;\n return {\n label: label,\n value: option?.id,\n };\n }\n );\n\n const onChange = (event: any) => {\n const updatedServices = {\n ...orderData?.order_services_detail!,\n timed_service_id: event.value,\n };\n const newData = { ...orderData, order_services_detail: updatedServices };\n setOrderData(newData);\n };\n\n const isDisabled = true;\n\n return (\n <Container>\n <Label label=\"Timed Service\" />\n <StyledSelectDropdown\n styles={{\n ...dropdownStyles,\n control: (styles: any) => ({\n ...styles,\n minWidth: 'max-content',\n }),\n }}\n placeholder=\"Select Timed Service\"\n options={timedServicesOptions || []}\n value={timedServicesOptions?.filter(\n (f: any) => f.value === timesServiceId\n )}\n inputId=\"timedServiceDropdown\"\n onChange={onChange}\n // isDisabled={isDisabled}\n className={isDisabled ? 'disabled' : ''}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst StyledSelectDropdown = styled(SelectDropdown)`\n &.disabled {\n pointer-events: none;\n opacity: 0.7;\n }\n`;\n\nexport default TimedServiceDropdown;\n","import React from 'react';\nimport { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport { useOrderDetails, useOrderStaticData } from '../../../store';\nimport styled from 'styled-components';\nimport { capitalize } from '../../../utils';\n\nfunction ServiceTypeDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [orderData, setOrderData] = useOrderDetails();\n\n const orderTypeId = orderData?.order_type_id;\n\n const serviceTypeOptions = orderStaticData?.order_type?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option.id,\n })\n );\n\n const onChange = (event: any) => {\n const newData = { ...orderData, order_type_id: event.value };\n setOrderData(newData);\n };\n const isDisabled = true;\n\n return (\n <Container>\n <Label label=\"Service Type\" htmlFor=\"serviceTypeDropdown\" />\n <StyledSelectDropdown\n placeholder=\"Select Service Type\"\n options={serviceTypeOptions || []}\n value={serviceTypeOptions?.filter((f: any) => f.value === orderTypeId)}\n inputId=\"serviceTypeDropdown\"\n openMenuOnFocus\n onChange={onChange}\n isDisabled={true}\n className={isDisabled ? 'disabled' : ''}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n // flex: 1;\n min-width: 250px;\n`;\n\nconst StyledSelectDropdown = styled(SelectDropdown)`\n &.disabled {\n cursor: not-allowed !important;\n opacity: 0.7;\n }\n`;\n\nexport default ServiceTypeDropdown;\n","import React from 'react';\nimport { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport { useOrderDetails, useOrderStaticData } from '../../../store';\nimport styled from 'styled-components';\nimport { capitalize } from '../../../utils';\n\nfunction DeliveryPointDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [orderData, setOrderData] = useOrderDetails();\n\n const deliveryPointId =\n orderData?.order_services_detail?.order_delivery_point_id;\n\n const deliveryPointOptions = orderStaticData?.order_delivery_point?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option.id,\n })\n );\n\n const onChange = (event: any) => {\n const updatedServices = {\n ...orderData?.order_services_detail!,\n order_delivery_point_id: event.value,\n };\n const newData = { ...orderData, order_services_detail: updatedServices };\n setOrderData(newData);\n };\n\n const isDisabled = true;\n\n return (\n <Container>\n <Label label=\"Delivery Point\" />\n <StyledSelectDropdown\n placeholder=\"Select Delivery Point\"\n options={deliveryPointOptions || []}\n inputId=\"deliveryPointDropdown\"\n value={deliveryPointOptions?.filter(\n (f: any) => f.value === deliveryPointId\n )}\n openMenuOnFocus\n onChange={onChange}\n // isDisabled={true}\n className={isDisabled ? 'disabled' : ''}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n // flex: 1;\n min-width: 250px;\n`;\nconst StyledSelectDropdown = styled(SelectDropdown)`\n &.disabled {\n pointer-events: none;\n opacity: 0.7;\n }\n`;\nexport default DeliveryPointDropdown;\n","import React from 'react';\nimport { RadioButtonGroup } from '@bjsdistribution/dms-component-library';\nimport { useOrderDetails, useOrderStaticData } from '../../../store';\nimport styled from 'styled-components';\nimport { capitalize } from '../../../utils';\n\nfunction ServiceLevel() {\n const [orderStaticData] = useOrderStaticData();\n const [orderData, setOrderData] = useOrderDetails();\n\n const serviceLevelId = orderData?.order_services_detail?.order_service_level_id?.toString();\n\n const serviceLevelOptions = orderStaticData?.order_service_levels?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option?.id?.toString(),\n })\n );\n\n const radioGroupHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n const updatedServices = {\n ...orderData?.order_services_detail!,\n order_service_level_id: +event.target.value,\n };\n const newData = { ...orderData, order_services_detail: updatedServices };\n setOrderData(newData);\n };\n\n const isDisabled = true; // Example value\n\n return (\n <Container disabled={isDisabled}>\n <RadioButtonGroup\n selectedValue={serviceLevelId || ''}\n heading=\"Service Level\"\n options={serviceLevelOptions || []}\n onChange={radioGroupHandler}\n required={true}\n isDisabled={isDisabled}\n />\n </Container>\n );\n}\n\nconst Container = styled.div<{ disabled: boolean }>`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n\n ${({ disabled }) =>\n disabled &&\n `\n pointer-events: none;\n\n > * {\n pointer-events: none;\n }\n `}\n\n > fieldset {\n > div {\n > div {\n > label {\n text-transform: capitalize;\n }\n }\n }\n }\n`;\n\nexport default ServiceLevel;\n","import { RadioButtonGroup } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails, useOrderStaticData } from '../../../store';\nimport { capitalize } from '../../../utils';\nimport { OrdersType } from '../../../types';\n\nfunction AssemblyType() {\n const [orderData, setOrderData] = useOrderDetails();\n const [orderStaticData] = useOrderStaticData();\n\n const assemblyTypeOptions = orderStaticData?.order_service_list_category?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option.type.toLowerCase(),\n })\n );\n\n const newRadioGroupHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newData: OrdersType = {\n ...orderData,\n assembly_type: event.target.value,\n };\n setOrderData(newData);\n };\n\n const isServiceDisable = () =>\n orderData?.assemble === false && orderData?.disassemble === false;\n\n return (\n <Container $isDisable={isServiceDisable()}>\n <RadioButtonGroup\n selectedValue={orderData?.assembly_type?.toLowerCase() || ''}\n heading=\"Assembly Type\"\n options={assemblyTypeOptions || []}\n onChange={newRadioGroupHandler}\n required={false}\n isDisabled={true}\n />\n </Container>\n );\n}\n\nconst Container = styled.div<{ $isDisable: boolean }>`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n pointer-events: ${props => (props.$isDisable ? 'none' : 'auto')};\n /* temporary change will add this in library */\n > fieldset {\n > div {\n > legend {\n width: auto;\n }\n }\n }\n`;\n\nexport default AssemblyType;\n","const baseURL = \"/assets/images/\";\n\n// export type ServiceOffered =\n// | \"Assemble\"\n// | \"Take Packaging Away\"\n// | \"Disassemble\"\n// | \"Collect Disposal\"\n// | \"Unpack Items\";\n\nexport const paths: Record<number, string> = {\n 1: 'assembly.svg', //1\n 2: 'disassembly.svg', //2\n 3: 'unpack_items.svg', //3\n 4: 'packaging_removal.svg', //4\n 5: 'collect_disposal.svg', //5\n};\n\nexport const getSubPath = (input: number): string => {\n const result = paths[input];\n return result;\n};\n\nexport const getIcon = (input: number): string => {\n const subPath = getSubPath(input);\n return `${baseURL}${subPath}`;\n};\n","import { Switch } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getIcon } from './helper';\n\ninterface SliderProps {\n serviceName: string;\n serviceId: number;\n isSelected: boolean;\n toggle: (id: number) => void;\n disabled: boolean;\n}\n\nfunction ServiceSlider(props: SliderProps) {\n // const onClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // event.preventDefault();\n // props.toggle(props.serviceId);\n // };\n\n return (\n <Container>\n <ServiceIcon src={getIcon(props.serviceId)} />\n <ServiceName>{props.serviceName}</ServiceName>\n {/* to stop event propagation */}\n <div className=\"hidden\">\n <Switch\n checked={props.isSelected}\n name={props.serviceName}\n onChange={() => {}}\n disabled={props?.disabled}\n />\n </div>\n </Container>\n );\n}\n\nconst ServiceName = styled.span`\n color: #6a7378;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n text-transform: capitalize;\n`;\n\nconst ServiceIcon = styled.img`\n min-width: 28px;\n height: 28px;\n`;\n\nconst Container = styled.div`\n display: flex;\n gap: 10px;\n align-items: center;\n /* cursor: not-allowed; */\n flex: 1;\n`;\n\nexport default ServiceSlider;\n","import React from 'react';\nimport styled from 'styled-components';\nimport ServiceSlider from '../../../../../common/services-slider/ServiceSlider';\nimport {\n useOrderDetails,\n useOrderStaticData,\n} from '../../../store';\nimport { OrdersType } from '../../../types';\n\nfunction OrderServices() {\n const [orderStaticData] = useOrderStaticData();\n const [orderDetails, setOrderDetails] = useOrderDetails();\n\n const orderServicesOptions = orderStaticData?.order_service_list;\n\n const desiredOrder = [\n 'unpack_items',\n 'take_packaging_away',\n 'assemble',\n 'disassemble',\n 'collect_disposal',\n ];\n\n const sortedServices = orderServicesOptions?.sort((a: any, b: any) => {\n return desiredOrder.indexOf(a.type) - desiredOrder.indexOf(b.type);\n });\n\n const toggleServices = (id: number) => {\n const selectedService = orderServicesOptions?.find(\n (item: any) => item.id === id\n );\n const key = selectedService?.type;\n const value = !orderDetails[key as keyof OrdersType];\n setOrderDetails(prev => ({\n ...prev,\n [key]: value,\n }));\n };\n const isDisabled = true;\n\n return (\n <Container disabled={isDisabled}>\n {sortedServices?.map((service: any) => {\n const selected = orderDetails[service?.type as keyof OrdersType];\n return (\n <ServiceSlider\n serviceName={service?.type?.replaceAll('_', ' ')}\n serviceId={service?.id}\n isSelected={selected}\n toggle={toggleServices}\n key={service?.id}\n disabled={true}\n />\n );\n })}\n </Container>\n );\n}\n\nconst Container = styled.div<{ disabled: boolean }>`\n display: flex;\n gap: 30px;\n flex: 1;\n @media screen and (max-width: 1170px) {\n flex-wrap: wrap;\n\n ${({ disabled }) =>\n disabled &&\n `\n pointer-events: none;\n\n > * {\n pointer-events: none;\n }\n `}\n }\n`;\n\nexport default OrderServices;\n","import { FormSection } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport Header from '../../common/Header';\nimport TimedServiceDropdown from './TimedService';\nimport ServiceTypeDropdown from './ServiceType';\nimport DeliveryPointDropdown from './DeliveryPoint';\nimport ServiceLevel from './ServiceLevel';\nimport AssemblyType from './AssemblyType';\nimport OrderServices from './OrderServices';\n\nfunction ServicesSection() {\n return (\n <CustomFormSection>\n <Header label=\"Services\" />\n <Top>\n <DropDownContainer>\n <TimedServiceDropdown />\n <ServiceTypeDropdown />\n <DeliveryPointDropdown />\n </DropDownContainer>\n <RadioContainer>\n <ServiceLevel />\n <AssemblyType />\n </RadioContainer>\n </Top>\n <Bottom>\n <OrderServices />\n </Bottom>\n </CustomFormSection>\n );\n}\n\nconst Top = styled.div`\n display: flex;\n gap: 30px;\n\n @media screen and (max-width: 1280px) {\n flex-direction: column;\n gap: 20px;\n }\n`;\n\nconst DropDownContainer = styled.div`\n display: contents;\n @media screen and (max-width: 1280px) {\n display: flex;\n gap: 15px;\n }\n`;\n\nconst RadioContainer = styled.div`\n display: contents;\n @media screen and (max-width: 1280px) {\n display: flex;\n gap: 15px;\n }\n`;\n\nconst Bottom = styled.div``;\n\nconst CustomFormSection = styled(FormSection)`\n flex: 1;\n flex-direction: column;\n gap: 10px;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n label,\n input,\n span {\n cursor: default !important;\n }\n`;\n\nexport default ServicesSection;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails } from '../../../store';\nimport { formatUtcToLocal } from '@bjsdistribution/dms-component-library';\n\nfunction AllowTracking() {\n const [orderDetails] = useOrderDetails();\n const createdBy = orderDetails?.created_by || 'Unknown';\n const createdAt = orderDetails?.created_at\n ? `${formatUtcToLocal(orderDetails.created_at).date} @ ${\n formatUtcToLocal(orderDetails.created_at).time\n }`\n : 'Not Available';\n\n return (\n <Container>\n <CreatedBy>\n <Text>Created: </Text> {createdBy}, {createdAt}\n </CreatedBy>\n </Container>\n );\n}\n\nconst Text = styled.span`\n color: #3a3630;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n line-height: 16px;\n`;\n\nconst CreatedBy = styled.span`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nexport default AllowTracking;\n","import React from 'react';\nimport styled from 'styled-components';\nimport AllowTracking from './AllowTracking';\nimport { Button, useAxios } from '@bjsdistribution/dms-component-library';\nimport {\n useAtom,\n useOrderDetails,\n usePrevOrderDetails,\n errorAtom,\n useCustomerInfo,\n useGlobalStateHitAuditLog,\n useGlobalStateHitOrder,\n useLiveRecalling,\n useOrderAlertsData,\n useStatusDetails,\n} from '../../../store';\n// import useUpdateOrder from '../../../hooks/useUpdateOrder';\nimport { compareOrderDetailsStates, filterObject } from '../../../utils';\nimport { ApiResponse, OrdersType } from '../../../types';\nimport { notification } from 'antd';\nimport { useClientPortal } from '../../../../store';\n\nfunction OrderDetailsFooter() {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails, setPrevOrderDetails] = usePrevOrderDetails();\n const [, setCustomerInfo] = useCustomerInfo();\n // const updateOrder = useUpdateOrder();\n const [errorState] = useAtom(errorAtom);\n const [, setRecallAuditLog] = useGlobalStateHitAuditLog();\n const [, setRecallOrders] = useGlobalStateHitOrder();\n const [isClientPortal] = useClientPortal();\n const [, setRecalling] = useLiveRecalling();\n const [, setOrderAlertsData] = useOrderAlertsData();\n const [, setOrderStatus] = useStatusDetails();\n\n // call alerts api\n const { fetchData: callOrderAlertsApi } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/alerts/?order_id=${orderDetails?.id}`,\n method: 'GET',\n });\n\n //Order status api\n const { fetchData: callOrderStatusApi } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/get_live_status/${orderDetails?.id}`,\n method: 'GET',\n });\n //update order\n const { fetchData: callUpdateOrderAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/update/`,\n method: 'PUT',\n });\n\n const errorFound = () => {\n const isError =\n errorState?.w3wError?.length > 0 ||\n errorState?.emailError?.length > 0 ||\n errorState?.homeContactError?.length > 0 ||\n errorState?.workCOntanctError?.length > 0 ||\n errorState?.mobileError?.length > 0 ||\n errorState?.postCodeError?.length > 0;\n\n return isError;\n };\n\n const isDifferent = () => {\n const keysToRemovefromOrders = [\n 'order_locked',\n 'order_communications',\n 'updated_at',\n 'updated_by',\n ];\n const filteredOrderDetails = filterObject(\n orderDetails,\n keysToRemovefromOrders\n );\n const filteredPrevOrderDetails = filterObject(\n prevOrderDetails,\n keysToRemovefromOrders\n );\n\n const orderDetailsSorted = JSON.stringify(filteredOrderDetails);\n const prevOrderDetailsSorted = JSON.stringify(filteredPrevOrderDetails);\n const isSame = orderDetailsSorted === prevOrderDetailsSorted;\n return !isSame;\n };\n //Northern/Southern Ireland PATCH API\n const { fetchData: callCustomDetailsAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/update/customs_details?order_id=${orderDetails?.id}`,\n method: 'PATCH',\n });\n const onSave = async () => {\n if (orderDetails?.id) {\n console.log('yooooooo11111');\n\n const {\n consignor_eori,\n packaging_type,\n consignee_country,\n commodity_code,\n country_of_origin,\n item_invoice_amount,\n procedure_code,\n ni_additional_information_codes,\n additional_procedure_code,\n additional_procedures,\n } = orderDetails?.order_customs_details ?? {};\n\n let customDetailsPayload: Record<string, any> = {\n order_id: orderDetails?.id,\n consignor_eori,\n packaging_type,\n consignee_country,\n commodity_code,\n country_of_origin,\n item_invoice_amount,\n procedure_code,\n ni_additional_information_codes,\n additional_procedure_code,\n additional_procedures,\n };\n\n // remove null/undefined values\n customDetailsPayload = Object.fromEntries(\n Object.entries(customDetailsPayload).filter(\n ([_, value]) => value !== null && value !== undefined\n )\n );\n\n // northern/southern details API\n callCustomDetailsAPI({\n payload: customDetailsPayload,\n });\n }\n console.log('yoooooooooo');\n setRecallAuditLog(false);\n setRecallOrders(false);\n setRecalling(false);\n const payload = compareOrderDetailsStates(prevOrderDetails, orderDetails);\n\n type ServiceKey =\n | 'assemble'\n | 'disassemble'\n | 'unpack_items'\n | 'collect_disposal'\n | 'take_packaging_away'\n | 'assembly_type';\n\n const serviceKeys: ServiceKey[] = [\n 'assemble',\n 'disassemble',\n 'unpack_items',\n 'collect_disposal',\n 'take_packaging_away',\n 'assembly_type',\n ];\n\n for (const key of serviceKeys) {\n if (key in payload) {\n (payload as Record<ServiceKey, any>)[key] =\n payload[key as keyof typeof payload];\n } else if (key in orderDetails) {\n (payload as Record<ServiceKey, any>)[key] =\n orderDetails[key as keyof OrdersType];\n }\n }\n\n if (payload?.assemble === false && payload?.disassemble === false) {\n payload.assembly_type = null;\n }\n\n console.log('final payload for update--->', [payload]);\n let response = (await callUpdateOrderAPI({\n payload: [{ ...payload, id: orderDetails?.id }],\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n // const response = await updateOrder([payload]);\n\n setRecallOrders(true);\n if (response.code == 200 && response?.data?.length > 0) {\n notification.success({\n message: 'Success',\n description: `${response?.message}`,\n });\n setOrderDetails(response?.data[0]);\n setPrevOrderDetails(response?.data[0]);\n setCustomerInfo({\n recipient_name: response?.data[0]?.order_recipient?.recipient_name,\n postcode: response?.data[0]?.order_recipient?.postcode,\n return_action: response?.data[0]?.return_action,\n\n });\n setRecallAuditLog(true);\n } else {\n setOrderDetails(prevOrderDetails);\n }\n\n const alertsApiRes = (await callOrderAlertsApi()) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (alertsApiRes?.code === 200 && alertsApiRes?.data) {\n setOrderAlertsData(alertsApiRes?.data);\n }\n\n const orderStatusApiRes = (await callOrderStatusApi()) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (orderStatusApiRes?.code === 200 && orderStatusApiRes?.data) {\n setOrderStatus(orderStatusApiRes?.data);\n }\n };\n //here changes needed\n return (\n <Container>\n <AllowTracking />\n <Button\n onClick={onSave}\n disabled={isClientPortal ? true : !isDifferent() || errorFound()}\n >\n Save Details\n </Button>\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 10px 15px;\n align-items: flex-start;\n border-top: 1px solid #edebe8;\n background: #f8fafc;\n margin: 0px -15px -15px -15px;\n border-radius: 0px 0px 8px 8px;\n`;\n\nexport default OrderDetailsFooter;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Label } from '@bjsdistribution/dms-component-library';\n\ntype CustomInputProps = {\n label: string;\n name?: string;\n type?: string;\n placeholder?: string;\n value?: string | number;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n minLength?: number;\n maxLength?: number;\n disabled?: boolean;\n direction?: 'row' | 'column';\n};\n\nconst CustomInput: React.FC<CustomInputProps> = ({\n label,\n name,\n type = 'text',\n placeholder,\n value,\n onChange,\n onBlur,\n onKeyDown,\n minLength,\n direction = 'column',\n maxLength,\n disabled,\n}) => {\n return (\n <Container direction={direction}>\n {label && <Label label={label} htmlFor={name} />}\n <StyledInput\n id={name}\n name={name}\n type={type}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n minLength={minLength}\n maxLength={maxLength}\n disabled={disabled}\n />\n </Container>\n );\n};\n\nexport default CustomInput;\n\n// ---------------- styled ----------------\n\nconst StyledInput = styled.input`\n padding: 12px 12px;\n border: 1px solid #ccc;\n border-radius: 8px;\n font-size: 14px;\n outline: none;\n width: 100%;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n`;\n\nconst Container = styled.div<{ direction: 'row' | 'column' }>`\n display: flex;\n flex-direction: ${({ direction }: any) => direction};\n align-items: ${({ direction }: any) =>\n direction === 'row' ? 'center' : 'flex-start'};\n gap: 6px;\n flex: 1;\n`;\n","import { FormSection } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { useOrderDetails } from '../store';\nimport Header from '../order-details/common/Header';\nimport CustomInput from './CustomInput';\n\nconst NorthernSouthernInfoView = () => {\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const handleChange = (key: any, value: string) => {\n setOrderDetails((prev: any) => ({\n ...prev,\n order_customs_details: {\n ...prev.order_customs_details,\n [key]: value,\n },\n }));\n };\n\n return (\n <CustomFormSection>\n <Header label=\"Northern/Southern Ireland\" />\n <FormInputs>\n <GroupedInputs>\n <CustomInput\n label=\"Consignee Country\"\n type=\"text\"\n placeholder=\"Enter Consignee Country\"\n value={orderDetails?.order_customs_details?.consignee_country}\n onChange={(e: any) =>\n handleChange('consignee_country', e.target.value)\n }\n />\n </GroupedInputs>\n <GroupedInputs>\n <CustomInput\n label=\"Procedure Code\"\n type=\"text\"\n placeholder=\"Enter Procedure Code\"\n value={orderDetails?.order_customs_details?.procedure_code}\n onChange={(e: any) =>\n handleChange('procedure_code', e.target.value)\n }\n />\n </GroupedInputs>\n <GroupedInputs>\n <CustomInput\n label=\"Additional Procedure Code\"\n type=\"text\"\n placeholder=\"Enter Add. Procedure Code\"\n value={\n orderDetails?.order_customs_details?.additional_procedure_code\n }\n onChange={(e: any) =>\n handleChange('additional_procedure_code', e.target.value)\n }\n />\n </GroupedInputs>\n <CustomInput\n label=\"Additional Procedures\"\n name=\"additional-procedures\"\n type=\"text\"\n placeholder=\"Enter Additional Procedures\"\n value={orderDetails?.order_customs_details?.additional_procedures}\n onChange={(e: any) =>\n handleChange('additional_procedures', e.target.value)\n }\n />\n </FormInputs>\n </CustomFormSection>\n );\n};\nconst FormInputs = styled.div`\n display: flex;\n flex-direction: column;\n gap: 25px;\n flex: 1;\n`;\n\nconst CustomFormSection = styled(FormSection)`\n flex: 1;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n padding: 15px;\n`;\n\nconst GroupedInputs = styled.div`\n display: flex;\n gap: 15px;\n white-space: nowrap;\n`;\nexport default NorthernSouthernInfoView;\n","import React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport CustomerSection from './customer-section';\nimport OrdersSection from './orders-section';\nimport InstructionSection from './instruction-section';\nimport ServicesSection from './services-section';\nimport OrderDetailsFooter from './footer';\nimport { Skeleton } from 'antd';\nimport { FormSection } from '@bjsdistribution/dms-component-library';\nimport { useIsShowNorthSouth } from '../../../store';\nimport { useOrderDetails } from '../../store';\nimport NorthernSouthernInfoView from '../../northern-southern-info';\n\nfunction ExpandedContent({ orderLoading, depotDataLoading }: any) {\n const [isNorthSouth] = useIsShowNorthSouth();\n const [orderDetails] = useOrderDetails();\n\n useEffect(() => {\n console.log('north sourthsalhdjas', isNorthSouth);\n }, [isNorthSouth]);\n return (\n <>\n <MainContainer>\n {orderLoading || depotDataLoading ? (\n <>\n <CustomFormSection>\n <Skeleton paragraph={{ rows: 4 }} />\n <Skeleton paragraph={{ rows: 4 }} />\n </CustomFormSection>\n </>\n ) : (\n <>\n <Container>\n <HalfWidth>\n <CustomerSection />\n </HalfWidth>\n <HalfWidth>\n <OrdersSection />\n </HalfWidth>\n <InstructionSection />\n {(isNorthSouth === true ||\n (orderDetails?.show_customs_details &&\n isNorthSouth !== false)) && <NorthernSouthernInfoView />}\n </Container>\n\n <ServicesSection />\n <OrderDetailsFooter />\n </>\n )}\n </MainContainer>\n </>\n );\n}\n\nconst HalfWidth = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 20px;\n\n @media (min-width: 769px) {\n flex-direction: row; /* Change to row for large screens */\n width: 50%;\n }\n\n @media (min-width: 1024px) {\n width: auto;\n }\n\n @media (min-width: 1440px) {\n width: 50%;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 20px;\n justify-content: space-between;\n\n @media (min-width: 769px) {\n flex-direction: row;\n }\n\n @media (min-width: 1024px) {\n justify-content: flex-start;\n }\n`;\n\n// const InstructionContainer = styled.div`\n// display: flex;\n// justify-content: center;\n// `;\n\n// const Overlay = css`\n// overflow: visible;\n// pointer-events: none;\n// background: none !important;\n// -webkit-user-select: none;\n// -moz-user-select: none;\n// -ms-user-select: none;\n// user-select: none;\n// `;\n\nconst MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 15px;\n /* padding-bottom: 30px; */\n @media (max-width: 768px) {\n gap: 10px;\n }\n`;\n\nconst CustomFormSection = styled(FormSection)`\n flex: 1;\n border-radius: 8px;\n background: #f8fafc;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n`;\n\nexport default ExpandedContent;\n","import React, { useEffect } from 'react';\n// import CollapsedContent from './collapsed-content';\n// import CollapsableForm from '../../../common/expand-collapse';\nimport ExpandedContent from './expanded-content';\nimport { useCustomerDetails, useOrderDetails } from '../store';\nimport { useApiHook } from '@bjsdistribution/dms-component-library';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: [];\n setShouldPerformAction: boolean;\n}\n\nfunction OrderDetails({ orderLoading, depotDataLoading }: any) {\n const [orderData] = useOrderDetails();\n const customerData = orderData;\n const id = customerData?.customer_id;\n\n // For API Call\n const [, setCustomerData] = useCustomerDetails();\n const { data: fetchedData, loading, setShouldPerformAction } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `customers/${id}`,\n method: 'GET',\n performAction: false,\n });\n\n useEffect(() => {\n if (id) {\n setShouldPerformAction(true);\n }\n }, [id]);\n\n useEffect(() => {\n if (fetchedData && fetchedData?.data) {\n const requiredData = fetchedData?.data;\n setCustomerData(requiredData[0]);\n }\n }, [fetchedData, loading]);\n\n return (\n <>\n <ExpandedContent\n orderLoading={orderLoading}\n depotDataLoading={depotDataLoading}\n />\n </>\n );\n}\n\nexport default OrderDetails;\n","import React, { useEffect } from 'react';\nimport { RadioButtonGroup } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport { useSelectedData, useVisibilityData } from '../../store';\n\nfunction NoteType() {\n const [visibilityData] = useVisibilityData();\n const [selected, setSelected] = useSelectedData();\n\n useEffect(() => {\n if (visibilityData && !selected) {\n const defaultOption = visibilityData?.find(\n (option: any) => option.type === 'Private'\n );\n if (defaultOption) {\n setSelected(defaultOption.value);\n }\n }\n }, [visibilityData, selected, setSelected]);\n\n const handleRadioButtonChange = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const selectedValue = event.target.value;\n const selectedOption = visibilityData?.find(\n (option: any) => option.value === selectedValue\n );\n if (selectedOption) {\n setSelected(selectedOption.value);\n }\n };\n\n return (\n <Container>\n <RadioButtonGroup\n selectedValue={selected}\n heading=\"\"\n options={visibilityData?.map((client: any) => ({\n label: client.type,\n value: client.value,\n }))}\n onChange={handleRadioButtonChange}\n required={false}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default NoteType;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport {\n Button,\n Label,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport { Select, notification } from 'antd';\nimport { useGlobalStateHitAuditLog, usemoduleIds, useOrderId } from '../store';\nimport { useLocation } from 'react-router-dom';\nimport { useClientPortal, useSelectedData } from '../../store';\nimport NoteType from './NoteType';\nimport { ApiResponse } from '../types';\nconst template = `REASON- \\nSTC- \\nACTION- `;\n\nfunction AddNote() {\n const [noteText, setNoteText] = useState(template);\n const [noteOptions, setNoteOptions] = useState<\n { label: string; value: string }[]\n >([]);\n const [selectedNoteType, setSelectedNoteType] = useState<string | null>(\n 'standard'\n );\n const [orderId] = useOrderId();\n const location = useLocation();\n const pathname = location.pathname;\n const orderIdLocaation = pathname.split('/')[1];\n const [isClientPortal] = useClientPortal();\n const [moduleIds] = usemoduleIds();\n const [, setRecallAuditLog] = useGlobalStateHitAuditLog();\n const [selectedAssignee] = useSelectedData();\n\n const { fetchData: getNoteType, data: fetchedData } = useAxios<any>({\n endpoint: `audit_logs/order/type`,\n method: 'GET',\n showLoader: false,\n });\n\n useEffect(() => {\n getNoteType();\n }, []);\n\n useEffect(() => {\n if (fetchedData?.data) {\n const options = fetchedData?.data?.map((item: any) => ({\n label: item?.name,\n value: item?.name,\n }));\n setNoteOptions(options);\n\n const standardOption = options?.find(\n (opt: any) => opt?.value?.toLowerCase() === 'standard'\n );\n if (standardOption) {\n setSelectedNoteType(standardOption?.value);\n } else if (options?.length > 0) {\n setSelectedNoteType(options[0]?.value);\n }\n }\n }, [fetchedData]);\n\n const { fetchData: callAuditLogs } = useAxios<{ data: ApiResponse[] }>({\n endpoint: `/audit_logs/orders/`,\n method: 'POST',\n });\n\n // `const isValidFormat = () => {\n // const lines = noteText.split('\\n');\n // if (lines.length < 3) return false;\n // return (\n // lines[0].startsWith('REASON-') &&\n // lines[1].startsWith('STC-') &&\n // lines[2].startsWith('ACTION-')\n // );\n // };\n\n const isDisabled = !noteText.trim() || !selectedAssignee;\n\n const saveNote = async () => {\n setRecallAuditLog(false);\n if (!noteText) return;\n const payload = {\n audit_logs: [\n {\n parent_object_id: orderId || orderIdLocaation,\n parent_module_id: moduleIds?.parentId,\n module_id: moduleIds?.id,\n note_type: selectedNoteType,\n module_object_id: orderId || orderIdLocaation,\n action: 'create',\n description: noteText,\n data_dump: '{}',\n manual: 1,\n is_private: isClientPortal\n ? false\n : selectedAssignee === '0'\n ? true\n : false,\n },\n ],\n };\n try {\n const response = await callAuditLogs({ payload });\n //@ts-ignore\n if (response?.code === 200 && response?.data) {\n notification.success({\n message: 'Success',\n //@ts-ignore\n description: response?.message || 'Note saved successfully',\n });\n\n setNoteText(template);\n setSelectedNoteType('Standard');\n setRecallAuditLog(true);\n } else {\n notification.error({\n message: 'Error',\n //@ts-ignore\n description: response?.error || 'Failed to save note',\n });\n }\n } catch (error) {\n notification.error({\n message: 'Error',\n description: 'Failed to save note due to an error.',\n });\n }\n };\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setNoteText(e.target.value);\n };\n\n return (\n <Container>\n <Label label=\"Add New Note\" required style={{ color: 'black' }} />\n <StyledAntSelect\n options={noteOptions}\n placeholder=\"Select Note Type\"\n onChange={(value: string) => setSelectedNoteType(value)}\n value={selectedNoteType}\n />\n <StyledTextArea value={noteText} onChange={handleChange} rows={3} />\n <SaveNoteContainer>\n <Button disabled={isDisabled} onClick={saveNote}>\n SAVE NOTE\n </Button>\n {!isClientPortal && <NoteType />}\n </SaveNoteContainer>\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nconst SaveNoteContainer = styled.div`\n display: inline-flex;\n gap: 10px;\n .disabled button {\n opacity: 0.5;\n cursor: default;\n }\n`;\n\nconst StyledTextArea = styled.textarea`\n height: 65px;\n border-radius: 8px;\n background: #fff;\n resize: vertical;\n border: 1px solid #e0e2e7;\n padding: 8px 12px;\n font-family: monospace;\n white-space: pre-wrap;\n`;\n\nexport const StyledAntSelect: any = styled(Select)`\n .ant-select-selector {\n border-radius: 8px;\n }\n`;\n\nexport default AddNote;\n","export const NotesTableData = [\n {\n tableHead: [\n { key: 'startFinish', label: 'Created', alwaysVisible: true },\n { key: 'routeDetails', label: 'Notes', alwaysVisible: true },\n ],\n tableBody: [\n ],\n },\n];\n","import styled from 'styled-components';\nimport React from 'react';\n\nimport { Skeleton } from 'antd';\nimport {\n PrivateIcon,\n formatUtcToLocal,\n} from '@bjsdistribution/dms-component-library';\nimport { NotesTableData } from '../notes/logs/fakeData';\nimport { useAuditLogLoadingState, usegetNotes } from '../store';\n\nconst GenericAuditLogsTable = () => {\n const tableHeadData = NotesTableData[0]?.tableHead; // Assuming NotesTableData contains table header information\n const [getNotes] = usegetNotes();\n const [auditLogLoadingStatus] = useAuditLogLoadingState();\n\n return (\n <ScrollableTableWrapper>\n <AuditTableWrapper>\n <table>\n <thead>\n <tr>\n {tableHeadData?.map(column => (\n <th key={column.key}>{column.label}</th>\n ))}\n </tr>\n </thead>\n <tbody>\n {auditLogLoadingStatus ? (\n <tr>\n <td className=\"noBoder\" colSpan={tableHeadData?.length}>\n <Skeleton />\n </td>\n </tr>\n ) : getNotes && getNotes?.length > 0 ? (\n getNotes?.map((note: any) => (\n <tr key={note?.id}>\n <td>\n <div className=\"bold\" title={note?.created_by}>\n {note?.created_by}\n </div>\n <div className=\"notesIcon\">\n {note?.is_private ? (\n <>\n <PrivateIcon />{' '}\n <span className=\"datetime\">{`${\n formatUtcToLocal(note?.created_at).date\n } @ ${\n formatUtcToLocal(note?.created_at).time\n }`}</span>\n </>\n ) : (\n <span className=\"datetime\">{`${\n formatUtcToLocal(note?.created_at).date\n } @ ${formatUtcToLocal(note?.created_at).time}`}</span>\n )}\n </div>\n <div>{note?.note_type || 'N/A'}</div>\n </td>\n <td\n dangerouslySetInnerHTML={{ __html: note?.description }}\n ></td>\n </tr>\n ))\n ) : (\n <tr>\n <td colSpan={tableHeadData?.length}>No data found</td>\n </tr>\n )}\n </tbody>\n </table>\n </AuditTableWrapper>\n </ScrollableTableWrapper>\n );\n};\n\nconst ScrollableTableWrapper = styled.div``;\n\nexport const AuditTableWrapper = styled.div`\n height: 250px;\n min-height: 200px;\n /* overflow: auto; */\n\n table {\n border-spacing: 0;\n width: 100%;\n text-align: left;\n\n thead {\n th {\n border-bottom: 1px solid rgba(58, 54, 48, 0.25);\n background: #faf9f9;\n padding: 14px 12px;\n color: #3a3630;\n font-size: 14px;\n font-weight: 600;\n line-height: 24px;\n }\n }\n tbody {\n td {\n color: #667085;\n font-family: Lato;\n font-size: 13px;\n font-weight: 400;\n line-height: 16px;\n padding: 10px;\n border-bottom: 1px solid #efe8e8;\n word-break: break-word;\n vertical-align: top;\n\n .bold {\n font-weight: 500;\n font-size: 14px;\n }\n .notesIcon {\n display: flex;\n align-items: center;\n gap: 5px;\n\n .datetime {\n min-width: 155px;\n }\n }\n }\n }\n }\n`;\n\nexport default GenericAuditLogsTable;\n","import React from 'react';\nimport styled from 'styled-components';\nimport GenericAuditLogsTable from '../../generic-table/AuditLogs';\n\nfunction AuditLogs() {\n return (\n <Container>\n <GenericAuditLogsTable />\n </Container>\n );\n}\n\nconst Container = styled.div`\n height: 500px;\n min-height: 200px;\n max-height: 500px;\n overflow: auto; /* Enable scrolling */\n scrollbar-width: thin;\n`;\n\nexport default AuditLogs;\n","import React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport AddNote from './AddNote';\nimport AuditLogs from './logs';\nimport { useApiHook } from '@bjsdistribution/dms-component-library';\nimport {\n useAuditLogLoadingState,\n // useCallAPi,\n usegetNotes,\n useGlobalStateHitAuditLog,\n usemoduleIds,\n useOrderId,\n} from '../store';\n// import { useLocation } from 'react-router-dom';\nfunction Notes() {\n const [moduleIds, setModuleIds] = usemoduleIds();\n const [orderId] = useOrderId();\n const [, setNotes] = usegetNotes();\n const [, setAuditLogLoading] = useAuditLogLoadingState();\n const [recallAuditLog, setAuditLogs] = useGlobalStateHitAuditLog();\n\n // Fetch module IDs\n const { data: fetchedData, loading: apiLoading } = useApiHook<{ data: any }>({\n endpoint: 'audit_logs/modules/',\n method: 'GET',\n });\n\n useEffect(() => {\n if (!apiLoading && fetchedData?.data) {\n const modules =\n fetchedData?.data\n .filter((item: any) => item?.name === 'ORDER')\n .flatMap((item: any) =>\n item?.static_child_mappings\n ?.filter(\n (child: any) => child?.child_module?.name === 'ORDER_NOTE'\n )\n .map((child: any) => ({\n id: child?.child_module?.id,\n parentId: child?.parent_module?.id,\n }))\n ) || [];\n\n setModuleIds(modules[0] || null);\n }\n }, [apiLoading, fetchedData]);\n\n // Fetch Notes Data\n const {\n data: NotesData,\n loading: NotesLoading,\n setShouldPerformAction,\n } = useApiHook<{ data: any }>({\n endpoint: `audit_logs/?module_id=${moduleIds?.parentId}&module_object_id=${orderId}`,\n method: 'GET',\n performAction: false,\n });\n\n useEffect(() => {\n if (moduleIds && orderId) {\n setShouldPerformAction(true);\n }\n if (!NotesLoading && NotesData?.data) {\n const updatedData = NotesData?.data\n .filter(\n (item: any) =>\n item['ORDER_NOTE'] || item['ORDER'] || item['ORDER_RETURN']\n )\n .map((item: any) => [\n item['ORDER_NOTE'],\n item['ORDER'],\n item['ORDER_RETURN'],\n ])\n .flat()\n .filter(Boolean);\n\n const combinedArray = updatedData?.flat();\n combinedArray.sort(\n (a: any, b: any) =>\n new Date(b.created_at).getTime() - new Date(a.created_at).getTime()\n );\n setNotes(combinedArray);\n recallAuditLog\n ? setShouldPerformAction(true)\n : setShouldPerformAction(false);\n }\n setAuditLogLoading(NotesLoading);\n }, [moduleIds, orderId, NotesLoading, recallAuditLog]);\n\n const handleGetLogs = () => {\n setAuditLogs(true);\n setTimeout(() => {\n setAuditLogs(false);\n }, 1000);\n };\n\n return (\n <Container>\n <CardHeader>\n NOTES\n <SmallButton onClick={handleGetLogs}>UPDATE LOGS</SmallButton>\n </CardHeader>\n <CustomizedFormSection>\n <AddNote />\n <AuditLogs />\n </CustomizedFormSection>\n </Container>\n );\n}\n\nconst Container = styled.div`\n border-radius: 5px;\n`;\n\nconst CardHeader = styled.div`\n border: 1px solid #f0f2f2;\n background-color: #f8fafc;\n color: #3a3630;\n font-size: 16px;\n padding: 10px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n text-transform: uppercase;\n font-family: 'Roboto', sans-serif;\n font-weight: 600;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst CustomizedFormSection = styled.div`\n display: flex;\n background: #ffffff;\n padding: 10px;\n flex-direction: column;\n gap: 14px;\n border: 1px solid #f0f2f2;\n border-bottom-right-radius: 8px;\n border-bottom-left-radius: 8px;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n`;\n\nconst SmallButton = styled.button`\n background-color: #363a30;\n color: #ffffff;\n font-size: 12px;\n padding: 4px 8px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.3s;\n\n &:hover {\n background-color: #feba30;\n }\n`;\nexport default Notes;\n","import React from 'react';\nimport styled from 'styled-components';\n// import styled from 'styled-components';\n\nfunction SystemCollapsedContent() {\n return <Font>SYSTEM EVENT LOGS</Font>;\n}\n\nconst Font = styled.div`\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 20px; /* 150% */\n`;\nexport default SystemCollapsedContent;\n","import React from 'react';\n\nfunction ChevronUp(props: any) {\n return (\n <svg\n width=\"10\"\n height=\"7\"\n viewBox=\"0 0 10 7\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n opacity=\"0.4\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.52985 6.02983C9.38922 6.17028 9.1986 6.24917 8.99985 6.24917C8.8011 6.24917 8.61047 6.17028 8.46985 6.02983L4.99985 2.55983L1.52985 6.02983C1.38767 6.16231 1.19963 6.23443 1.00532 6.231C0.811023 6.22758 0.625638 6.14886 0.488225 6.01145C0.350812 5.87404 0.2721 5.68865 0.268672 5.49435C0.265243 5.30005 0.337366 5.112 0.469846 4.96983L4.46985 0.969829C4.61047 0.829378 4.8011 0.750488 4.99985 0.750488C5.1986 0.750488 5.38922 0.829378 5.52985 0.969829L9.52985 4.96983C9.6703 5.11045 9.74919 5.30108 9.74919 5.49983C9.74919 5.69858 9.6703 5.8892 9.52985 6.02983Z\"\n fill=\"#3A3630\"\n />\n </svg>\n );\n}\n\nexport default ChevronUp;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport ChevronUp from '../../assets/icons/ChevronUp';\n\ninterface IProps {\n collapsedContent: React.ReactNode;\n children: React.ReactNode;\n extraActions?: React.ReactNode;\n}\n\nfunction CollapsableForm(props: IProps) {\n const [isExpanded, setIsExpanded] = useState<boolean>(true);\n return (\n <MainContainer>\n <CardHeader>\n <CollapsedContent>\n {props.collapsedContent}\n <Container>\n {props?.extraActions}\n <Text onClick={() => setIsExpanded(prev => !prev)}>\n {isExpanded ? 'COLLAPSE' : 'SHOW'}\n </Text>\n <IconContainer\n onClick={() => setIsExpanded(prev => !prev)}\n isExpanded={isExpanded}\n >\n <ChevronUp />\n </IconContainer>\n </Container>\n </CollapsedContent>\n </CardHeader>\n {isExpanded && (\n <CustomizedFormSection>\n <ExpandedContent>{props.children}</ExpandedContent>\n </CustomizedFormSection>\n )}\n </MainContainer>\n );\n}\n\nconst CustomizedFormSection = styled.div`\n display: flex;\n background: #ffffff;\n padding: 12px;\n flex-direction: column;\n gap: 14px;\n border: 1px solid #f0f2f2;\n border-bottom-right-radius: 8px;\n border-bottom-left-radius: 8px;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n`;\n\nconst CardHeader = styled.div`\n border: 1px solid #f0f2f2;\n background-color: #f8fafc;\n color: #3a3630;\n font-size: 16px;\n padding: 10px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n font-family: 'Roboto', sans-serif;\n font-weight: 600;\n`;\n\nconst Text = styled.span`\n font-size: 14px;\n color: #3a3630;\n font-weight: 500;\n font-family: 'lato', sans-serif;\n cursor: pointer;\n`;\n\nconst Container = styled.div`\n display: flex;\n gap: 10px;\n align-items: center;\n`;\n\nconst MainContainer = styled.div`\n gap: 0;\n`;\n\nconst IconContainer = styled.div<{ isExpanded: boolean }>`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n width: 25px;\n height: 25px;\n padding: 2px;\n border-radius: 3px;\n background: #ffffff;\n box-shadow: 0px 1px 2px 0px #1018280d;\n &:hover {\n background: rgba(58, 54, 57, 0.05);\n }\n svg {\n transform: rotate(${props => (props.isExpanded ? '360deg' : '180deg')});\n }\n`;\n\nconst ExpandedContent = styled.div``;\n\nconst CollapsedContent = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n`;\n\nexport default CollapsableForm;\n","import Scrollbars from 'react-custom-scrollbars-2';\nimport React from 'react';\nimport styled from 'styled-components';\n\ninterface IProps {\n children: React.ReactNode;\n thumbHeight?: number;\n}\n\nfunction CustomScrollBar(props: IProps) {\n const { children, thumbHeight = 66 } = props;\n return (\n <Scrollbars\n thumbSize={thumbHeight}\n renderTrackHorizontal={props => <TrackHorizontal {...props} />}\n renderView={props => <View {...props} />}\n renderThumbVertical={props => <ThumbVertical {...props} />}\n >\n {children}\n </Scrollbars>\n );\n}\n\nconst ThumbVertical = styled.div`\n background-color: #586164;\n border-radius: 66px;\n width: 2px !important; // to overide styles\n margin-top: 60px;\n`;\n\nconst View = styled.div`\n overflow-x: hidden;\n`;\n\nconst TrackHorizontal = styled.div`\n display: none;\n`;\n\nexport default CustomScrollBar;\n","import {\n flexRender,\n getCoreRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport CustomScrollBar from '../../common/scrollbar';\nimport { atom, useAtom } from 'jotai';\nimport { Skeleton } from 'antd';\nexport const selectedID = atom<any>([]);\n\ninterface DynamicTableProps {\n columns: any;\n data: any[];\n loading: boolean;\n}\n\nfunction DynamicTable(\n { columns, data, loading }: DynamicTableProps,\n props: any\n) {\n const tableColumns = useMemo(() => columns, [columns]);\n const tableData = useMemo(() => data, [data]);\n\n const table = useReactTable({\n columns: tableColumns,\n data: tableData,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n });\n\n const rows = table.getRowModel().rows;\n const headerGroups = table.getHeaderGroups();\n const action = props;\n const [selectedRows] = useAtom(selectedID);\n\n const smallColumns = [\n 'types',\n 'sources',\n 'event',\n 'code',\n 'type',\n 'route',\n 'action',\n ];\n const mediumColumns = ['date', 'reference', 'note', 'category'];\n const largeColumns = ['details', 'datetime'];\n const noFlexColumns = ['id'];\n\n console.log(rows, '<===========rows');\n console.log(props, 'props');\n return (\n <MainContainer>\n <Container>\n <TableWrapper>\n <CustomScrollBar>\n <Table>\n <TableHead>\n {headerGroups?.map(headerGroup => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map(header => (\n <TableHeadData\n className={`col \n ${\n smallColumns.includes(header?.id)\n ? 'sm'\n : mediumColumns.includes(header?.id)\n ? 'md'\n : largeColumns.includes(header?.id)\n ? 'lg'\n : ''\n }`}\n key={header.id}\n onClick={header.column.getToggleSortingHandler()}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHeadData>\n ))}\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {loading ? (\n <tr>\n <td colSpan={5}>\n <Skeleton active />\n </td>\n </tr>\n ) : rows?.length === 0 ? (\n <TableRow>\n <TableData colSpan={columns.length}>\n No entries found.\n </TableData>\n </TableRow>\n ) : (\n rows?.map(row => (\n <TableRow\n key={row.id}\n className={`${\n selectedRows?.length > 0 &&\n selectedRows?.filter(\n (f: any) => f?.id === (row?.original as any)?.id\n )?.length\n ? 'isSelectedRow'\n : ''\n }`}\n >\n {row.getVisibleCells().map(cell => (\n <TableData\n className={`col \n ${\n noFlexColumns.includes(cell?.column.id)\n ? 'noFlex'\n : smallColumns.includes(cell?.column.id)\n ? 'sm'\n : mediumColumns.includes(cell?.column.id)\n ? 'md'\n : largeColumns.includes(cell?.column.id)\n ? 'lg'\n : ''\n } ${cell?.column.id}`}\n key={cell.id}\n >\n {flexRender(cell.column.columnDef.cell, {\n ...cell.getContext(),\n action,\n })}\n </TableData>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n </CustomScrollBar>\n </TableWrapper>\n </Container>\n </MainContainer>\n );\n}\n\nconst Container = styled.div`\n height: 30vh;\n pointer-events: initial;\n @media (max-width: 1024px) {\n height: 40vh;\n }\n`;\n\nconst TableWrapper = styled.div`\n height: 100%;\n overflow-x: auto;\n scrollbar-width: thin;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n`;\n\nconst TableHeadData = styled.th`\n padding: 10px 5px;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-weight: 500;\n line-height: 24px;\n letter-spacing: 0px;\n`;\n\nconst TableData = styled.td`\n border-spacing: 0px;\n padding: 10px 5px;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0px;\n`;\n\nconst TableRow = styled.tr`\n display: flex;\n align-items: stretch;\n width: 100%;\n border-bottom: 1px solid rgb(215, 214, 213);\n font-weight: 300;\n`;\n\nconst TableBody = styled.tbody`\n border-bottom-right-radius: 10px;\n background: rgb(255, 255, 255);\n height: 96%;\n overflow: auto;\n width: 100%;\n`;\n\nconst TableHead = styled.thead`\n position: sticky;\n top: 0px;\n z-index: 1;\n background: #f8f8f8;\n white-space: nowrap;\n`;\n\nconst Table = styled.table`\n width: 100%;\n height: 50%;\n background: rgb(255, 255, 255);\n box-shadow: 0px 4px 30px 0px #2e2d740d;\n`;\n\nconst MainContainer = styled.div`\n .col {\n display: flex;\n align-items: center;\n color: #3a3630;\n padding: 10px 5px;\n text-align: left;\n }\n\n .col.noFlex {\n flex: 0;\n }\n\n .col.sm {\n flex: 1;\n min-width: 100px;\n }\n\n .col.md {\n flex: 2;\n justify-content: flex-start;\n min-width: 85px;\n }\n\n .col.lg {\n flex: 4;\n justify-content: flex-start;\n min-width: 180px;\n }\n\n .col.date {\n }\n\n .col.amount,\n .col.price {\n justify-content: flex-end;\n }\n\n .TableHeadData,\n .TableData {\n padding: 10px 5px;\n text-align: left;\n white-space: nowrap;\n }\n\n .TableRow {\n display: flex;\n width: 100%;\n }\n\n .Table {\n width: 100%;\n }\n`;\n\nexport default DynamicTable;\n","import React from 'react';\nimport styled from 'styled-components';\n// import { useEventNotesData } from '../../store';\n\nfunction Event(props: any) {\n const data = props?.row?.original?.event_description;\n // const [notesData] = useEventNotesData();\n\n // const getDescription = (eventId: number | undefined) => {\n // if (eventId === undefined || notesData?.length === 0) return '';\n\n // const eventData = notesData?.find((note: any) => note?.id === eventId);\n // return eventData ? eventData?.description : 'N/A';\n // };\n return (\n <RowContainer>\n <Row>{data}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Event;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { formatUtcToLocal } from '@bjsdistribution/dms-component-library';\n\nfunction Date(props: any) {\n const data = props?.row?.original.created_at;\n return (\n <RowContainer>\n <Row>{`${formatUtcToLocal(data).date} @ ${\n formatUtcToLocal(data).time\n }`}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Date;\n","import React from 'react';\nimport styled from 'styled-components';\n\nfunction Code(props: any) {\n const data = props?.row?.original.event_code;\n return (\n <RowContainer>\n <Row>{data}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Code;\n","import React from 'react';\nimport styled from 'styled-components';\n\nfunction Note(props: any) {\n const data = props?.row?.original?.event_notes;\n\n return (\n <RowContainer title={data}>\n <Row dangerouslySetInnerHTML={{ __html: data || '' }} />\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div`\n display: inline-block;\n max-width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst Row = styled.div``;\n\nexport default Note;\n","import {Note, Code, Event, Date } from \"./columns\";\n\nexport const tableColumns = [\n {\n header: 'Date',\n accessorKey: 'date',\n cell: Date,\n enableSorting: false,\n },\n\n {\n header: 'Code',\n accessorKey: 'code',\n cell: Code,\n enableSorting: false,\n },\n {\n header: 'Event',\n accessorKey: 'event',\n cell: Event,\n enableSorting: false,\n },\n {\n header: 'Note',\n accessorKey: 'note',\n cell: Note,\n enableSorting: false,\n },\n];\n","import React from 'react';\nimport CollapsedContent from '../collapsed-content';\nimport styled from 'styled-components';\nimport CollapsableForm from '../../../../common/expand-collapse';\nimport DynamicTable from '../../DynamicTable';\nimport { useOrderProductSystemLogs } from '../../store';\nimport { tableColumns } from '../helper';\n// import { useAxios } from '@bjsdistribution/dms-component-library';\n// import { ApiResponse } from '../../types';\n\nfunction SystemLogs({ loading }: any) {\n const [systemLogs] = useOrderProductSystemLogs();\n // const [, setNotesData] = useEventNotesData();\n\n // event API\n // const {\n // data: systemLogsData,\n // fetchData: callSystemLogAPI,\n // loading,\n // } = useAxios<{\n // data: ApiResponse[];\n // }>({\n // endpoint: `/events/get/event/`,\n // method: 'GET',\n // pagination: { is_pagination: false },\n // });\n\n // useEffect(() => {\n // callSystemLogAPI();\n // }, []);\n\n // useEffect(() => {\n // if (systemLogsData && systemLogsData?.data) {\n // setNotesData(systemLogsData?.data);\n // }\n // }, [loading]);\n\n return (\n <Table>\n <CollapsableForm collapsedContent={<CollapsedContent />}>\n <DynamicTable\n columns={tableColumns}\n data={systemLogs}\n loading={loading}\n />\n </CollapsableForm>\n </Table>\n );\n}\nconst Table = styled.div`\n width: 100%;\n`;\nexport default SystemLogs;\n","export const StatusOptions = [\n {\n label: 'Released',\n value: 'released',\n },\n {\n label: 'Received',\n value: 'received',\n },\n {\n label: 'Scheduled',\n value: 'scheduled',\n },\n {\n label: 'Routed',\n value: 'routed',\n },\n {\n label: 'Confirmed',\n value: 'confirmed',\n },\n {\n label: 'Delivered',\n value: 'delivered',\n },\n];\n\nexport const notesTypeOptions = [\n {\n label: 'Public',\n value: 'public',\n },\n {\n label: 'Private',\n value: 'private',\n },\n];\n","import React from 'react';\n\nfunction RouteIcon() {\n return (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8335 12C22.8335 17.5225 18.356 22 12.8335 22C7.311 22 2.8335 17.5225 2.8335 12C2.8335 6.4775 7.311 2 12.8335 2C18.356 2 22.8335 6.4775 22.8335 12Z\"\n fill=\"url(#paint0_linear_1321_263837)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1321_263837\"\n x1=\"5.7625\"\n y1=\"4.929\"\n x2=\"19.9045\"\n y2=\"19.071\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFD98C\" />\n <stop offset=\"1\" stopColor=\"#ECA412\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\nexport default RouteIcon;\n","import React from 'react';\n\nconst SuccessIcon = () => {\n return (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.3335 12C22.3335 17.5225 17.856 22 12.3335 22C6.811 22 2.3335 17.5225 2.3335 12C2.3335 6.4775 6.811 2 12.3335 2C17.856 2 22.3335 6.4775 22.3335 12Z\"\n fill=\"url(#paint0_linear_1311_263704)\"\n />\n <path\n d=\"M10.9801 16.3535L6.98012 12.3535C6.78462 12.158 6.78462 11.8415 6.98012 11.6465L7.68712 10.9395C7.88262 10.744 8.19912 10.744 8.39412 10.9395L11.3336 13.879L16.7731 8.4395C16.9686 8.244 17.2851 8.244 17.4801 8.4395L18.1871 9.1465C18.3826 9.342 18.3826 9.6585 18.1871 9.8535L11.6871 16.3535C11.4921 16.549 11.1751 16.549 10.9801 16.3535Z\"\n fill=\"url(#paint1_linear_1311_263704)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1311_263704\"\n x1=\"5.2625\"\n y1=\"4.929\"\n x2=\"19.4045\"\n y2=\"19.071\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#9DFFCE\" />\n <stop offset=\"1\" stopColor=\"#50D18D\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_1311_263704\"\n x1=\"6.83362\"\n y1=\"12.3965\"\n x2=\"18.3336\"\n y2=\"12.3965\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0.824\" stopColor=\"#135D36\" />\n <stop offset=\"0.931\" stopColor=\"#125933\" />\n <stop offset=\"1\" stopColor=\"#11522F\" />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default SuccessIcon;\n","import React from 'react';\n\nfunction DeliveredIcon() {\n return (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.167 12C22.167 17.5225 17.6895 22 12.167 22C6.64449 22 2.16699 17.5225 2.16699 12C2.16699 6.4775 6.64449 2 12.167 2C17.6895 2 22.167 6.4775 22.167 12Z\"\n fill=\"url(#paint0_linear_1321_263874)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1321_263874\"\n x1=\"5.09599\"\n y1=\"4.929\"\n x2=\"19.238\"\n y2=\"19.071\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#D3D1CE\" />\n <stop offset=\"1\" stopColor=\"#928F8B\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\nexport default DeliveredIcon;\n","import React from 'react';\n\nfunction ConfirmedIcon() {\n return (\n <svg\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.5005 12C22.5005 17.5225 18.023 22 12.5005 22C6.97799 22 2.50049 17.5225 2.50049 12C2.50049 6.4775 6.97799 2 12.5005 2C18.023 2 22.5005 6.4775 22.5005 12Z\"\n fill=\"url(#paint0_linear_1321_263851)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_1321_263851\"\n x1=\"5.42949\"\n y1=\"4.929\"\n x2=\"19.5715\"\n y2=\"19.071\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FE9191\" />\n <stop offset=\"1\" stopColor=\"#F44F5A\" />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\nexport default ConfirmedIcon;\n","import React from 'react';\n\nfunction Divider() {\n return (\n <svg\n width=\"12\"\n height=\"36\"\n viewBox=\"0 0 12 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.104 36L11.229 18L1.104 0\"\n stroke=\"#E2E0DB\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport default Divider;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { StatusOptions } from '../helper';\n// Import icon\nimport RouteIcon from '../../../assets/icons/RoutedIcon';\nimport SuccessIcon from '../../../assets/icons/SuccessIcon';\nimport DeliveredIcon from '../../../assets/icons/DeliveredIcon';\nimport ConfirmedIcon from '../../../assets/icons/ConfirmedIcon';\nimport { useStatusDetails } from '../store';\nimport { Skeleton } from 'antd';\nimport Divider from '../../../assets/icons/Divider';\n\nfunction Status({ statusDataLoading }: any) {\n const [orderStatus] = useStatusDetails();\n return (\n <>\n <Container>\n <BoxContainer>\n {statusDataLoading ? (\n <>\n <StatusSkeletonRow />\n </>\n ) : (\n StatusOptions?.map((option, index) => (\n <React.Fragment key={index}>\n <TextContainer>\n {renderIcon(option.value, orderStatus)}\n <Heading>{option.label}</Heading>\n </TextContainer>\n {index < StatusOptions.length - 1 && <Divider />}\n </React.Fragment>\n ))\n )}\n </BoxContainer>\n </Container>\n </>\n );\n}\nconst StatusSkeletonItem = () => (\n <SkeletonItemContainer>\n <Skeleton.Avatar size=\"small\" style={{ marginRight: 12 }} />\n <Skeleton.Input\n active\n size=\"small\"\n style={{ width: 150, borderRadius: 8 }}\n />\n </SkeletonItemContainer>\n);\nconst StatusSkeletonRow = () => (\n <StatusBox>\n <StatusSkeletonItem />\n <SkeletonDivider />\n <StatusSkeletonItem />\n <SkeletonDivider />\n <StatusSkeletonItem />\n <SkeletonDivider />\n <StatusSkeletonItem />\n <SkeletonDivider />\n <StatusSkeletonItem />\n <SkeletonDivider />\n <StatusSkeletonItem />\n </StatusBox>\n);\nconst renderIcon = (value: any, orderStatus: any) => {\n const status = orderStatus && orderStatus.length > 0 ? orderStatus[0] : null;\n\n if (!status) {\n return null;\n }\n\n if (!status) {\n return null;\n }\n\n switch (value) {\n case 'released':\n case 'scheduled':\n case 'routed':\n case 'confirmed':\n return status[value] ? <SuccessIcon /> : <ConfirmedIcon />;\n case 'received':\n if (status.received === 'True') {\n return <SuccessIcon />;\n } else if (status.received === 'Partial') {\n return <RouteIcon />;\n } else {\n return <ConfirmedIcon />;\n }\n case 'delivered':\n if (\n status.delivered &&\n (status.completed === false || status.completed === null)\n ) {\n return <DeliveredIcon />; //grey\n } else if (status.delivered === true && status.completed === true) {\n return <SuccessIcon />;\n } else if (status.delivered === true && status.completed === false) {\n return <RouteIcon />; //orange\n } else {\n return <ConfirmedIcon />;\n }\n default:\n return null;\n }\n};\n\n// const RowWrapper = styled.div`\n// display: flex;\n// flex-direction: column;\n// background: #fff;\n// border-radius: 12px;\n// box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\n// padding: 16px;\n// `;\n\n// const HeaderPlaceholder = styled.div`\n// display: flex;\n// align-items: center;\n// padding: 8px 0;\n// gap: 12px;\n// `;\n\nconst StatusBox = styled.div`\n display: flex;\n align-items: center;\n background: #fcfcfc;\n border: 1px solid #eee;\n border-radius: 20px;\n justify-content: space-between;\n flex-wrap: wrap;\n padding: 5px;\n width: -webkit-fill-available;\n`;\n\nconst SkeletonItemContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nconst SkeletonDivider = styled.div`\n width: 12px;\n height: 2px;\n background-color: #e0e0e0;\n margin: 0 4px;\n border-radius: 2px;\n`;\n\nconst BoxContainer = styled.div`\n border: 1px solid #e3e3e3;\n display: flex;\n justify-content: space-evenly;\n border-radius: 20px;\n background: #f8fafc;\n align-items: center;\n height: 5%;\n`;\n\nconst Heading = styled.div`\n font-family: 'lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n text-transform: uppercase;\n`;\n\nconst Container = styled.div`\n padding: 15px;\n margin-top: 25px;\n`;\n\nconst TextContainer = styled.div`\n gap: 10px;\n display: flex;\n align-items: center;\n`;\nexport default Status;\n","import React from 'react';\nimport Status from './Status';\nimport styled from 'styled-components';\n// import DropDownOptions from './dropdowns';\n\nfunction GeneralHeader({ statusDataLoading }: any) {\n return (\n <Section>\n <Status statusDataLoading={statusDataLoading} />\n {/* <DropDownOptions /> */}\n </Section>\n );\n}\n\nconst Section = styled.div``;\n\nexport default GeneralHeader;\n","import React from 'react';\n\nconst ActionIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"25\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n >\n <path\n d=\"M0.5 12.2432C0.5 5.61581 5.87258 0.243225 12.5 0.243225C19.1274 0.243225 24.5 5.61581 24.5 12.2432C24.5 18.8706 19.1274 24.2432 12.5 24.2432C5.87258 24.2432 0.5 18.8706 0.5 12.2432Z\"\n fill=\"#E95252\"\n fillOpacity=\"0.5\"\n />\n <path\n d=\"M16.566 9.23825C16.6377 9.16909 16.6948 9.08636 16.7342 8.99488C16.7735 8.90339 16.7943 8.80499 16.7952 8.70541C16.7961 8.60582 16.7772 8.50705 16.7395 8.41486C16.7018 8.32267 16.6462 8.23891 16.5758 8.16846C16.5054 8.098 16.4217 8.04228 16.3295 8.00452C16.2374 7.96677 16.1386 7.94774 16.0391 7.94856C15.9395 7.94938 15.841 7.97002 15.7495 8.00929C15.658 8.04855 15.5752 8.10565 15.506 8.17725L12.5 11.1822L9.495 8.17725C9.42634 8.10356 9.34354 8.04446 9.25154 8.00347C9.15954 7.96247 9.06022 7.94043 8.95952 7.93865C8.85882 7.93688 8.75879 7.9554 8.6654 7.99312C8.57201 8.03084 8.48718 8.08699 8.41596 8.15821C8.34474 8.22943 8.2886 8.31426 8.25087 8.40765C8.21315 8.50104 8.19463 8.60107 8.19641 8.70177C8.19818 8.80247 8.22022 8.90178 8.26122 8.99378C8.30221 9.08578 8.36131 9.16858 8.435 9.23725L11.438 12.2432L8.433 15.2482C8.30052 15.3904 8.22839 15.5785 8.23182 15.7728C8.23525 15.9671 8.31396 16.1525 8.45138 16.2899C8.58879 16.4273 8.77417 16.506 8.96847 16.5094C9.16278 16.5128 9.35082 16.4407 9.493 16.3082L12.5 13.3032L15.505 16.3092C15.6472 16.4417 15.8352 16.5139 16.0295 16.5104C16.2238 16.507 16.4092 16.4283 16.5466 16.2909C16.684 16.1535 16.7627 15.9681 16.7662 15.7738C16.7696 15.5795 16.6975 15.3914 16.565 15.2492L13.562 12.2432L16.566 9.23825Z\"\n fill=\"#E95252\"\n />\n </svg>\n);\n\nexport default ActionIcon;\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport styled from 'styled-components';\n\ninterface BackgroundModalProps {\n children: React.ReactNode;\n}\n\nfunction BackgroundModal(props: BackgroundModalProps) {\n return createPortal(\n <Container {...props}>{props.children}</Container>,\n document.body\n );\n}\n\nconst Container = styled.div`\n border: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center; \n z-index: 1000;\n background: rgba(0, 0, 0, 0.8);\n box-shadow: 0px 3px 10px #00000029;\n`;\n\nexport default BackgroundModal;\n","import styled from 'styled-components';\nimport React from 'react';\n\ninterface IProps {\n info: string;\n}\n\nfunction AdditionalInformation(props: IProps) {\n return (\n <Container>\n <Rect />\n <AdditionalInfo>\n <Text>{props.info}</Text>\n </AdditionalInfo>\n </Container>\n );\n}\n\nconst Text = styled.p`\n color: #ffffff;\n font-family: 'Lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n margin: 0;\n padding: 0;\n`;\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Rect = styled.div`\n width: 9px;\n height: 45px;\n background: #3a3630;\n`;\n\nconst AdditionalInfo = styled.div`\n display: flex;\n padding: 3px 10px;\n flex-direction: column;\n align-items: flex-start;\n gap: 20px;\n border-radius: 0px 15px 15px 0px;\n background: rgba(63, 151, 188, 0.6);\n box-shadow: 2px 0px 2px 0px rgba(0, 0, 0, 0.25) inset;\n`;\n\nexport default AdditionalInformation;\n","import { CrossIcon } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport AdditionalInformation from './AdditionalInformation';\n\ninterface HeaderProps {\n title: string;\n actions?: React.ReactNode;\n showInformation?: boolean;\n infoText?: string;\n onClose: () => void;\n}\n\nfunction OrderActionHeader(props: HeaderProps) {\n const {\n title,\n actions,\n showInformation = false,\n infoText = ' ',\n onClose,\n } = props;\n\n return (\n <Container>\n <Wrapper>\n <Title>{title}</Title>\n {showInformation && <AdditionalInformation info={infoText} />}\n {actions}\n </Wrapper>\n\n <IconContainer onClick={onClose}>\n <CrossIcon />\n </IconContainer>\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n gap: 6px;\n align-items: center;\n width: 90%;\n margin-left: 20px;\n`;\n\nconst IconContainer = styled.div`\n svg > path {\n fill: #ffffff;\n }\n cursor: pointer;\n`;\n\nconst Title = styled.h3`\n margin: 0;\n padding: 0;\n color: #edebe8;\n text-transform: uppercase;\n font-size: 20px;\n font-family: 'Roboto', sans-serif;\n font-style: normal;\n font-weight: 900;\n text-wrap: nowrap;\n`;\n\nconst Container = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n background: #3a3630;\n border-radius: 12px 12px 0px 0px;\n padding: 10px 15px 10px 15px;\n position: sticky;\n top: 0;\n z-index: 9;\n`;\n\nexport default OrderActionHeader;\n","import { Button } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\n\ninterface FooterProps {\n submitButtonTitle?: string;\n cancelButtonTitle?: string;\n actions?: React.ReactNode;\n onSubmit: () => void;\n onCancel?: () => void;\n isSubmitDisabled?: boolean;\n}\n\nfunction OrderActionFooter(props: FooterProps) {\n const { isSubmitDisabled } = props;\n return (\n <Container>\n <SubmitButton\n shape=\"rounded\"\n colors=\"primary\"\n onClick={props.onSubmit}\n disabled={isSubmitDisabled}\n >\n {props.submitButtonTitle || 'submit'}\n </SubmitButton>\n {props.actions}\n </Container>\n );\n}\n\nconst SubmitButton = styled(Button)``;\n\nconst Container = styled.div`\n display: flex;\n /* justify-content: space-between; */\n gap: 15px;\n align-items: center;\n width: 100%;\n background: #f8fafc;\n border-radius: 0px 0px 6px 6px;\n padding: 10px 15px 10px 15px;\n border-top: 1px solid #edebe8;\n margin-left: 25px;\n`;\n\nexport default OrderActionFooter;\n","import React from 'react';\nimport styled from 'styled-components';\nimport BackgroundModal from './BackgroundModal';\nimport OrderActionHeader from './header/OrderActionHeader';\nimport OrderActionFooter from './footer/OrderActionFooter';\n\ninterface ActionModalProps {\n headerTitle: string;\n showAdditionalInfo?: boolean;\n infoText?: string;\n headerActions?: React.ReactNode;\n submitBtnTitle?: string;\n footerActions?: React.ReactNode;\n children: React.ReactNode;\n onCloseHeader: () => void;\n onSubmit: () => void;\n isSubmitDisabled?: boolean;\n minWidth?: string; // New optional prop for min-width\n maxWidth?: string; // New optional prop for min-width\n}\n\nfunction OrderActionModal({\n minWidth = '30vw',\n maxWidth = '75vw',\n ...props\n}: ActionModalProps) {\n return (\n <BackgroundModal>\n <MainContainer minWidth={minWidth} maxWidth={maxWidth}>\n <OrderActionHeader\n title={props.headerTitle}\n onClose={props.onCloseHeader}\n showInformation={props.showAdditionalInfo}\n infoText={props.infoText}\n actions={props.headerActions}\n />\n {props.children}\n <OrderActionFooter\n submitButtonTitle={props.submitBtnTitle}\n onSubmit={props.onSubmit}\n actions={props.footerActions}\n isSubmitDisabled={props.isSubmitDisabled}\n />\n </MainContainer>\n </BackgroundModal>\n );\n}\n\n// Styled component with dynamic min-width\nconst MainContainer = styled.div<{ minWidth: string; maxWidth: string }>`\n min-height: 30vh;\n max-height: 80vh;\n border-radius: 12px;\n background: #fff;\n box-shadow: 0px 20px 24px -4px #10182814;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n overflow-x: hidden;\n max-width: ${({ maxWidth }) => maxWidth}; // Dynamic max-width\n min-width: ${({ minWidth }) => minWidth}; // Dynamic min-width\n`;\n\nexport default OrderActionModal;\n","import React, { useEffect } from 'react';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport {\n useCurrentAction,\n useCustomerInfo,\n usegetClientData,\n useOrderDetails,\n} from '../../../store';\nimport { ApiResponse } from '../../../types';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport { Empty, Skeleton } from 'antd';\n\nimport styled from 'styled-components';\nimport { ClientType } from '../../../../order-daily-overview/common/interface';\nimport { getBaseUrlSymbol } from '../../../utils';\n\nfunction ChargeLog() {\n const [, setCurrentAction] = useCurrentAction();\n const [customerInfo] = useCustomerInfo();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n const [orderDetails] = useOrderDetails();\n const baseUrlSymbol = getBaseUrlSymbol();\n const [clientData] = usegetClientData();\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n\n const { data: fetchedData, loading, fetchData } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/invoices/charge-logs/?order_id=${orderDetails?.id}`,\n method: 'GET',\n });\n\n useEffect(() => {\n fetchData();\n }, []);\n\n return (\n <OrderActionModal\n headerTitle=\"Charges For\"\n onCloseHeader={closeModal}\n onSubmit={closeModal}\n submitBtnTitle=\"Close\"\n showAdditionalInfo\n infoText={infoText}\n >\n <StyledTableWrapper>\n <StyledTable className=\"scrollClass\">\n <thead>\n <tr>\n <th>Date</th>\n <th>Description</th>\n <th>Amount</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={6}>\n <Skeleton active />\n </td>\n <td colSpan={6}></td>\n </tr>\n ) : fetchedData?.data?.length === 0 ? (\n <tr>\n <td className=\"emptyTd\" colSpan={7}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n fetchedData?.data?.map((order: any) => {\n const label = order?.status?.split(':')[0];\n const val = order?.status?.split(':')[1];\n const baseUrl = clientData?.filter(\n (client: ClientType) => client?.client_id === order?.client_id\n )[0]?.url;\n\n const redirectionLink =\n baseUrl + `/finance/order/${order?.debrief_id}`;\n return (\n <tr>\n <td>{order?.date}</td>\n <td>{order?.description}</td>\n <td>\n <a\n style={{\n color: '#09F',\n cursor: 'pointer',\n textDecoration: 'none',\n }}\n href={`https://${redirectionLink}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {baseUrlSymbol}\n {order?.amount}\n </a>\n </td>\n <td>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '5px',\n }}\n >\n {label}: <Value>{val}</Value>\n </div>\n </td>\n </tr>\n );\n })\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </OrderActionModal>\n );\n}\n// Styled components\nexport const StyledTableWrapper = styled.div`\n overflow-x: auto;\n max-height: calc(100vh - 290px);\n scrollbar-width: none;\n width: 100%;\n /* box-shadow: 0px 0px 30px 6px rgba(46, 45, 116, 0.05); */\n &::-webkit-scrollbar {\n width: 5px;\n border-radius: 100px;\n height: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background: #777;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #7b61ff;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: #7b61ff;\n }\n`;\n\nexport const StyledTable = styled.table`\n border-spacing: 0 10px;\n width: 100%;\n padding: 10px;\n thead {\n tr {\n border-radius: 40px;\n border-spacing: 0 10px;\n th {\n color: #3a3630;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n padding: 5px 15px;\n background: #f0f2f2;\n border-right: none;\n border-left: none;\n text-align: left;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-width: 1px 0;\n text-transform: capitalize;\n &:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n &:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n }\n }\n }\n tbody {\n tr {\n td {\n color: #3a3630;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n padding: 12px 15px;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n }\n .link {\n color: #09f;\n font-family: Roboto;\n font-weight: 400;\n .linkHover {\n cursor: pointer;\n }\n }\n td {\n .flex {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n .overDue {\n border-radius: 20px;\n border: 1px solid #edebe8;\n background: #fff;\n padding: 4px 8px;\n color: #e95252;\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: 16px;\n }\n }\n &:nth-child(even) td {\n background: #f6fbff;\n }\n td:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n td:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n .emptyTd {\n border-radius: 100px !important;\n }\n .flex {\n display: flex;\n flex-direction: row;\n gap: 5px;\n height: 29px;\n align-items: center;\n }\n\n &.insideTable {\n td {\n border-radius: 0;\n border: none;\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n table {\n border-spacing: 0;\n width: 100%;\n border-radius: 5px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n overflow: hidden;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n thead {\n tr {\n border-bottom: none;\n th {\n padding: 14px 20px;\n text-align: left;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n background: #f8fafc;\n &:first-child {\n border-radius: 0;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n border-top-left-radius: 15px;\n }\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n tbody {\n tr {\n td {\n padding: 14px 20px;\n text-align: left;\n border-bottom: 1px solid rgba(58, 54, 48, 0.15);\n background: #fff;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n }\n }\n }\n }\n }\n }\n .actions {\n display: flex;\n align-items: center;\n gap: 20px;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n\n .close-icon {\n transform: scale(1.3);\n background-color: transparent;\n border-radius: 0;\n padding: 0;\n }\n }\n`;\n\nexport const EmptyDataContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const Badge = styled.div`\n div {\n display: flex;\n min-width: 85px;\n padding: 6px 10px;\n justify-content: center;\n align-items: center;\n gap: 5px;\n border-radius: 22px;\n font-family: 'Open Sans';\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n }\n`;\n\nexport const BadgeStatus = styled.div`\n &.pending {\n background: #fff1d6;\n color: #f4a503;\n }\n\n &.resolved {\n background: rgba(41, 204, 106, 0.15);\n color: #1f9254;\n }\n\n &.overdue {\n background: rgba(233, 82, 82, 0.15);\n color: var(--contextual-red, #e95252);\n }\n`;\n\nexport const ClearAll = styled.div`\n border-radius: 20px;\n border: 1px solid #edebe8;\n background: #fff;\n display: flex;\n padding: 6px 6px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n\n &.active {\n background: #313130;\n & > div {\n color: #fff;\n }\n }\n`;\nexport const StyledFilterBtnIcon = styled.div`\n display: flex;\n width: 24px;\n height: 24px;\n justify-content: center;\n align-items: center;\n border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #f1f5f6;\n .cross {\n position: relative;\n &:after {\n display: inline-block;\n content: 'X';\n font-style: normal;\n font-size: 14px;\n color: #000;\n }\n }\n`;\nexport const StyledFilterBtnLabel = styled.div`\n color: #6a7378;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n white-space: nowrap;\n`;\n\nexport default ChargeLog;\n\nconst Value = styled.span`\n color: #29cc6a;\n`;\n","import React, { useEffect, useState } from 'react';\nimport {\n StyledTable,\n StyledTableWrapper,\n} from '../../../order-daily-overview/return-order-table/return-orders-filters/returnstyles';\nimport {\n Checkbox,\n displayValueOrNA,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport ActionIcon from '../../../../assets/icons/ActionIcon';\nimport { useOrderId, useProductDetails } from '../../store';\nimport { ApiResponse } from '../../types';\nimport { Empty, notification, Skeleton } from 'antd';\nimport {\n useIsShowNorthSouth,\n useNewReturnOrderData,\n useSelectedProducts,\n useClientPortal,\n} from '../../../store';\nimport styled from 'styled-components';\nimport { NavLink } from 'react-router-dom';\nimport { EmptyDataContainer } from '../../order-actions/actions/charge-log';\nimport CustomInput from '../../northern-southern-info/CustomInput';\n\ninterface IPROS {\n callReturnProducts: any;\n loading: boolean;\n locationloading: boolean;\n}\n\nconst ReturnProductTable = (props: IPROS) => {\n const [selectedProducts, setSelectedProducts] = useSelectedProducts();\n const [selectAll, setSelectAll] = useState(false);\n const [productData, setProductData] = useProductDetails();\n const [selectedRowId, setSelectedRowId] = useState<number | null>(null);\n const [orderId] = useOrderId();\n const [returnOrderData] = useNewReturnOrderData();\n const [isNorthSouth] = useIsShowNorthSouth();\n const [isClientPortal] = useClientPortal();\n\n // const handleActionClick = (id: number) => {\n // setSelectedRowId(id);\n // };\n\n const { data: isresponse, fetchData: callDeleteProduct } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/return/product/remove/`,\n method: 'POST',\n body: { return_order_product_id: selectedRowId, return_order_id: +orderId },\n });\n\n useEffect(() => {\n if (isresponse && isresponse.data) {\n notification.success({\n message: 'Success',\n description: 'Successfully Delete Order Product.',\n });\n handleRemoveRow();\n setSelectedRowId(null);\n }\n }, [isresponse]);\n\n const handleRemoveRow = () => {\n if (selectedRowId !== null) {\n setProductData((prevData: any) =>\n prevData.filter((item: any) => item.id !== selectedRowId)\n );\n }\n };\n\n // const onDeleteProducts = () => {\n // callDeleteProduct();\n // };\n\n const handleSelectAll = () => {\n if (selectAll) {\n setSelectedProducts([]);\n } else {\n const allProductIds = productData?.map((product: any) => product.id);\n setSelectedProducts(allProductIds);\n }\n setSelectAll(!selectAll);\n };\n\n const handleSelectProduct = (id: number) => {\n setSelectedProducts((prevSelected: any) =>\n prevSelected.includes(id)\n ? prevSelected.filter((selectedId: any) => selectedId !== id)\n : [...prevSelected, id]\n );\n };\n\n //delete product API\n const deleteProduct = async (selectedProductId: any) => {\n try {\n const response = (await callDeleteProduct({\n payload: {\n return_order_product_id: selectedProductId,\n return_order_id: +orderId,\n },\n })) as {\n code: number | null;\n error?: string | null;\n data?: any[];\n message?: string;\n };\n\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: response?.message || 'Product deleted successfully.',\n });\n props?.callReturnProducts();\n } else {\n notification.error({\n message: 'Deletion Failed',\n description: response?.message || 'Could not delete the product.',\n });\n }\n } catch (error) {\n console.error('Error deleting product:', error);\n notification.error({\n message: 'Error',\n //@ts-ignore\n description: error?.message || 'An unexpected error occurred.',\n });\n }\n };\n\n const disableCheckbox =\n productData?.length == 0 || returnOrderData?.length == 0;\n return (\n <div>\n <StyledTableWrapper id=\"tableScrolling\" className=\"orderProductTable\">\n <StyledTable>\n <thead>\n <tr>\n <th className=\"emailproductsCheckbox\">\n <StyleCheckbox\n disabled={disableCheckbox}\n checked={selectAll}\n onChange={handleSelectAll}\n />\n </th>\n <th>Location</th>\n <th>Sender</th>\n <th>Code</th>\n <th>Description</th>\n <th>Return Reason</th>\n {!isClientPortal && <th>Additional Services</th>}\n <th>Part</th>\n <th>Action</th>\n </tr>\n </thead>\n <tbody>\n {props?.loading || props?.locationloading ? (\n <tr>\n <td colSpan={14}>\n <Skeleton active />\n </td>\n </tr>\n ) : productData?.length === 0 ? (\n <tr>\n <td colSpan={14}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n productData?.map((product: any) => (\n <React.Fragment key={product.id}>\n {/* MAIN ROW */}\n <tr className=\"product-row\">\n <td>\n <StyleCheckbox\n checked={selectedProducts?.includes(product?.id)}\n onChange={() => handleSelectProduct(product?.id)}\n disabled={disableCheckbox}\n />\n </td>\n <td>{product?.location || 'N/A'}</td>\n <td>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n }}\n >\n <NavLink to={`/orders/view/${product?.order_id}`}>\n {displayValueOrNA(product?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(product?.postcode)}\n </li>\n </ul>\n </td>\n <td>{product?.code}</td>\n <td>{product?.description}</td>\n <td>{product?.return_reason}</td>\n {!isClientPortal && (\n <td>\n {Array.isArray(product?.product_addon_services) && product?.product_addon_services?.length > 0\n ? product.product_addon_services\n .map((service: any) => service?.service_code || service?.name || service)\n .filter(Boolean)\n .join(', ')\n : Array.isArray(product?.addon_services) && product?.addon_services?.length > 0\n ? product.addon_services\n .map((service: any) => service?.service_code || service?.name || service)\n .filter(Boolean)\n .join(', ')\n : Array.isArray(product?.addon_services_list) && product?.addon_services_list?.length > 0\n ? product.addon_services_list.join(', ')\n : typeof product?.addon_services === 'string' && product?.addon_services.trim() !== ''\n ? product.addon_services\n : 'NA'}\n </td>\n )}\n <td>{product?.part}</td>\n <td>\n <div\n onClick={() => deleteProduct(product?.id)}\n style={{ cursor: 'pointer' }}\n >\n <ActionIcon />\n </div>\n </td>\n </tr>\n\n {/* EXPANDED ROW */}\n {isNorthSouth === true && (\n <td colSpan={isClientPortal ? 8 : 9}>\n <NSWrapper>\n <div className=\"left\">Northern/Southern Ireland</div>\n <div className=\"left-end\"></div>\n\n <div className=\"section\">\n <CustomInput\n label=\"Commodity Code\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter Commodity Code\"\n value={\n product?.product_customs_details\n ?.commodity_code || 'NA'\n }\n disabled\n />\n\n <CustomInput\n label=\"Country of Origin\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter Country of Origin\"\n value={\n product?.product_customs_details\n ?.country_of_origin || 'NA'\n }\n disabled\n />\n\n <CustomInput\n label=\"Item Invoice Amount\"\n type=\"number\"\n direction=\"row\"\n placeholder=\"Enter Item Invoice Amount\"\n value={\n product?.product_customs_details\n ?.item_invoice_amount || 0\n }\n disabled\n />\n\n <CustomInput\n label=\"NI Additional Info Codes\"\n type=\"text\"\n direction=\"row\"\n placeholder=\"Enter NI Add Info Codes\"\n value={\n product?.product_customs_details\n ?.ni_additional_information_codes || 'NA'\n }\n disabled\n />\n </div>\n </NSWrapper>\n </td>\n )}\n </React.Fragment>\n ))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </div>\n );\n};\n\nexport const NSWrapper = styled.div`\n display: flex;\n width: 100%;\n padding: 5px 10px;\n align-items: center;\n gap: 10px;\n // position: absolute;\n // right: 84px;\n // top: 181px;\n border-radius: 6px;\n border: 1px solid rgb(237, 235, 232);\n background: rgb(248, 250, 252);\n margin-bottom: 14px;\n\n .left {\n display: flex;\n padding-right: 10px;\n align-items: center;\n gap: 5px;\n align-self: stretch;\n color: #3a3630;\n font-feature-settings: 'liga' off, 'clig' off;\n font-family: Roboto;\n font-size: 13px;\n font-style: normal;\n font-weight: 500;\n line-height: normal;\n text-transform: uppercase;\n }\n\n .left-end {\n display: flex;\n padding-right: 10px;\n align-items: center;\n gap: 5px;\n align-self: stretch;\n border-right: 1px solid #e2e0db;\n }\n\n .section {\n display: flex;\n align-items: center;\n gap: 30px;\n flex: 1 0 0;\n\n input {\n display: flex;\n height: 28px;\n padding: 3px 10px;\n align-items: center;\n gap: 8px;\n flex: 1 0 0;\n border-radius: 30px;\n border: 1px solid #ccc;\n background: #fff;\n }\n }\n`;\nconst StyleCheckbox = styled(Checkbox)`\n &:disabled {\n background-color: gray;\n cursor: not-allowed;\n opacity: -0.4;\n }\n`;\n\nexport default ReturnProductTable;\n","import React from 'react';\nimport ReturnProductTable from './product-table/ReturnProductTable';\nimport styled from 'styled-components';\n\ninterface IPROS {\n callReturnProducts: any;\n loading: boolean;\n locationloading: boolean;\n}\n\nconst ProductTable = (props: IPROS) => {\n return (\n <Container>\n <ReturnProductTable\n callReturnProducts={props?.callReturnProducts}\n loading={props?.loading}\n locationloading={props?.locationloading}\n />\n </Container>\n );\n};\n\nconst Container = styled.div`\n /* height: 230px; */\n overflow: auto; /* Enable scrolling */\n scrollbar-width: thin;\n`;\n\nexport default ProductTable;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { useApiHook } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../types';\nimport { useOrderDetails, useOrderId, useProductDetails } from '../../store';\nimport { Select } from 'antd';\nimport { useNewReturnOrderData, useSelectedProducts } from '../../../store';\nimport { atom, useAtom } from 'jotai';\n\nexport const payloadAtom = atom<any>(null);\nexport const selectedOrderId = atom<any>(null);\n\nconst NewReturnDropdown = () => {\n const defaultSelectStyle = { width: '100%' };\n const defaultPopupClassName = 'dropDownStyle';\n const [returnOrderData, setReturnOrderData] = useNewReturnOrderData();\n const [selectedId, setSelectedOrderId] = useAtom(selectedOrderId);\n const [selectedProducts] = useSelectedProducts();\n const [orderData] = useOrderDetails();\n const [, setPayload] = useAtom(payloadAtom);\n const [productData] = useProductDetails();\n const [idProduct, setId] = useState<any>();\n const [orderId] = useOrderId();\n\n const id = orderData?.customer_id;\n useEffect(() => {\n const allProductIds =\n productData?.map((product: any) => product?.return_location) || [];\n setId(allProductIds);\n }, [productData]);\n\n const filters = [\n { field: 'customer_id', op: '=', value: id },\n { field: 'is_deleted', op: '=', value: 0 },\n { field: 'status', op: '!=', value: 'SD' },\n { field: 'id', op: '!=', value: orderId },\n ];\n\n if (idProduct?.length > 0 && idProduct[0]) {\n filters.push({\n field: 'return_order_products.return_location',\n op: '=',\n value: idProduct[0],\n });\n }\n\n const { data: fetchedReturnOrderData, setShouldPerformAction } = useApiHook<\n ApiResponse\n >({\n endpoint: '/v1/return/orders/',\n method: 'GET',\n filters: filters && filters?.length > 0 ? filters : undefined,\n //@ts-ignore\n pagination: { is_pagination: false },\n performAction: false,\n });\n\n useEffect(() => {\n if (id && idProduct?.length > 0 && idProduct[0]) {\n setShouldPerformAction(true);\n }\n }, [id, idProduct, setShouldPerformAction]);\n\n useEffect(() => {\n if (fetchedReturnOrderData && fetchedReturnOrderData?.data && id !== null) {\n setReturnOrderData(fetchedReturnOrderData?.data);\n }\n }, [fetchedReturnOrderData, id]);\n\n useEffect(() => {\n if (selectedId && selectedProducts?.length > 0) {\n const newPayload = {\n new_return_order: selectedId,\n products: selectedProducts,\n };\n setPayload(newPayload);\n }\n }, [selectedId, selectedProducts, setPayload]);\n\n const handleDropdownChange = (value: string) => {\n setSelectedOrderId(value);\n };\n const dropdownOptions = returnOrderData?.map((order: any) => ({\n label: `${order?.recipient_name} - ${order?.postcode}`,\n value: order?.id,\n }));\n return (\n <Container>\n <Text>New Return Order:</Text>\n <StyledAntSelect\n options={dropdownOptions}\n value={selectedId}\n placeholder=\"Select\"\n // @ts-ignore\n onChange={handleDropdownChange}\n style={defaultSelectStyle}\n showSearch\n dropdownStyle={{ width: '250px' }}\n popupClassName={defaultPopupClassName}\n status={dropdownOptions.length === 0 ? '' : selectedId ? '' : 'error'}\n notFoundContent=\"No orders found with a similar postcode\"\n />\n </Container>\n );\n};\n\nconst StyledAntSelect = styled(Select)`\n .ant-select-selector {\n /* width: 22vw; */\n border-radius: 22px;\n }\n .ant-select-clear {\n top: 40% !important;\n font-size: 18px !important;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n align-self: stretch;\n white-space: nowrap;\n`;\n\nconst Text = styled.div`\n color: #000;\n font-family: 'Lato';\n font-size: 13px;\n font-weight: 400;\n line-height: 16px;\n`;\n\nexport default NewReturnDropdown;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport ProductTable from '../../return-client-products/ProductTable';\nimport NewReturnDropdown, {\n payloadAtom,\n selectedOrderId,\n} from '../../notes/order-dropdown/NewReturnDropdown';\nimport { Button, useAxios } from '@bjsdistribution/dms-component-library';\nimport { useAtom } from 'jotai';\nimport { ApiResponse } from '../../types';\nimport { usePostLoading, useSelectedProducts } from '../../../store';\n// import { useOrderId } from '../../store';\nimport { useNavigate } from 'react-router-dom';\nimport { notification } from 'antd';\nimport { useOrderId } from '../../store';\n\ninterface IPROS {\n callReturnProducts: any;\n loading: boolean;\n locationloading: boolean;\n}\n\nfunction ExpandedContent(props: IPROS) {\n const [payload] = useAtom(payloadAtom);\n const [, setPostLoading] = usePostLoading();\n const [orderId] = useOrderId();\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\n const navigate = useNavigate();\n const [, setSelectedProducts] = useSelectedProducts();\n const [, setSelectedOrderId] = useAtom(selectedOrderId);\n\n const {\n data: response,\n\n loading: confirmLoading,\n fetchData: callMoveProducts,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/return/product/move/?return_order_id=${orderId}`,\n method: 'POST',\n body: payload,\n });\n\n useEffect(() => {\n setPostLoading(confirmLoading);\n }, [confirmLoading, setPostLoading]);\n\n useEffect(() => {\n if (payload?.new_return_order && payload?.products?.length > 0) {\n setIsButtonDisabled(false);\n } else {\n setIsButtonDisabled(true);\n }\n }, [payload]);\n\n const sleep = (ms: number) => new Promise(res => setTimeout(res, ms));\n\n const handleConfirmReturn = async () => {\n if (isButtonDisabled) {\n console.error('Payload is incomplete:', payload);\n return;\n }\n\n setPostLoading(true);\n\n const response = await callMoveProducts();\n //@ts-ignore\n if (response?.code === 200) {\n await sleep(2000);\n props?.callReturnProducts();\n setSelectedOrderId(null);\n }\n };\n\n const newId = Array.isArray(response?.data)\n ? //@ts-ignore\n response?.data?.[0]?.id\n : //@ts-ignore\n response?.data?.id;\n\n useEffect(() => {\n //@ts-ignore\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n //@ts-ignore\n\n description: response?.message || 'Products moved successfully',\n });\n setSelectedProducts([]);\n } else if (response) {\n notification.error({\n message: 'Error',\n //@ts-ignore\n\n description: response?.message || 'Error while moving products',\n });\n }\n\n //@ts-ignore\n if (response?.code === 200 && newId) {\n // suggested by rahul\n navigate(`${newId}`);\n setSelectedProducts([]);\n }\n }, [response, newId, navigate, setSelectedProducts]);\n\n return (\n <Container>\n <ProductTable\n callReturnProducts={props?.callReturnProducts}\n loading={props?.loading}\n locationloading={props?.locationloading}\n />\n <MidContainer>\n <SaveNoteContainer>\n <Button\n style={{ borderRadius: '20px' }}\n onClick={handleConfirmReturn}\n disabled={isButtonDisabled}\n >\n Move Products\n </Button>\n <NewReturnDropdown />\n </SaveNoteContainer>\n </MidContainer>\n </Container>\n );\n}\n\nconst MidContainer = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 10px 15px;\n align-items: flex-start;\n border-top: 1px solid #edebe8;\n background: #f8fafc;\n margin: 0px -15px -15px -15px;\n border-radius: 0px 0px 8px 8px;\n margin-bottom: 22px;\n`;\n\nconst SaveNoteContainer = styled.div`\n display: inline-flex;\n gap: 10px;\n`;\n\nconst Container = styled.div``;\n\nexport default ExpandedContent;\n","import { SectionHeader } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useProductDetails } from '../../store';\nimport { WEIGHT_UNIT } from '../../../../common/utils';\n\nfunction CollapsedContent() {\n const [productsData] = useProductDetails();\n\n const calculateTotal = (items: any[], field: 'cube' | 'weight') => {\n return items\n ?.reduce((total, item) => {\n const val = parseFloat(item?.[field]);\n return total + (isNaN(val) ? 0 : val);\n }, 0)\n .toFixed(2);\n };\n\n return (\n <Container>\n <SectionHeader label=\"Products\" />\n <Dimensions>Products to be Returned</Dimensions>\n\n {productsData?.length > 0 && (\n <>\n <Items style={{ display: 'flex' }}>\n Total: {calculateTotal(productsData, 'weight')}\n {WEIGHT_UNIT} / {calculateTotal(productsData, 'cube')}m³\n </Items>\n\n <Items style={{ display: 'flex' }}>\n Orders- {new Set(productsData?.map((item: any) => item?.order_id).filter((id: any) => id != null)).size} / Products- {productsData?.length}\n </Items>\n </>\n )}\n </Container>\n );\n}\n\nconst Dimensions = styled.span`\n color: #6a7378;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px; /* 171.429% */\n`;\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n /* justify-content: space-between; */\n width: 100%;\n gap: 30px;\n`;\n\nconst Items = styled.span`\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-weight: 500;\n line-height: 24px;\n color: #8e8a85;\n text-transform: capitalize;\n color: #6a7378;\n`;\n\nexport default CollapsedContent;\n","import React, { useEffect } from 'react';\nimport ExpandedContent from './expanded-content';\nimport CollapsedContent from './collapsed-content';\nimport CollapsableForm from '../../../common/expand-collapse';\nimport { useOrderDetails, useProductDetails } from '../store';\nimport { useLoading } from '../../order-daily-overview/store/store';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { notification, Spin } from 'antd';\nimport { useState } from 'react';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: [];\n setShouldPerformAction: boolean;\n}\n\nfunction ProductsInfo({ locationloading }: any) {\n const [data] = useOrderDetails();\n const returnOrder = data;\n\n const [spinLoading, setSpinLoading] = useState<boolean>(false);\n\n // Export functionality\n const { fetchData: callExportCSV } = useAxios<any>({\n endpoint: `/v1/export/csv/${returnOrder?.id}`,\n method: 'POST',\n });\n\n const handleExportCSV = (e: React.MouseEvent) => {\n e.stopPropagation();\n setSpinLoading(true);\n\n callExportCSV()\n .then((res: any) => {\n const urlToDownload = res?.data?.url || res?.url;\n if (urlToDownload) {\n const a = document.createElement('a');\n a.href = urlToDownload;\n a.download = `products_export_${returnOrder?.id}.csv`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n setSpinLoading(false);\n })\n .catch(err => {\n notification.error({\n message: 'Failed to export csv',\n description: err?.message || 'Export error',\n });\n setSpinLoading(false);\n });\n };\n\n // For API Call\n const [, setProductsData] = useProductDetails();\n const [, setLoading] = useLoading();\n const {\n data: returnOrdersData,\n loading,\n fetchData: callReturnProducts,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/return/products/${returnOrder?.id}`,\n method: 'GET',\n pagination: { is_pagination: false },\n });\n\n useEffect(() => {\n if (returnOrder?.id) {\n callReturnProducts();\n }\n }, [returnOrder.id]);\n\n useEffect(() => {\n setLoading(loading);\n if (returnOrdersData && returnOrdersData.data) {\n const requiredData = returnOrdersData.data;\n if (requiredData?.length > 0) {\n setProductsData(requiredData);\n } else {\n setProductsData([]);\n }\n }\n }, [returnOrdersData, loading]);\n\n const isExportDisabled = !returnOrdersData?.data || returnOrdersData?.data?.length === 0;\n\n return (\n <CollapsableForm\n collapsedContent={<CollapsedContent />}\n extraActions={\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n cursor: isExportDisabled ? 'not-allowed' : 'pointer',\n opacity: isExportDisabled ? 0.5 : 1,\n marginRight: '16px',\n backgroundColor: 'rgb(243 243 243)',\n border: '1px solid #E2E8F0',\n padding: '6px 14px',\n borderRadius: '10px',\n boxShadow: '0 1px 2px rgba(0,0,0,0.05)',\n transition: 'background-color 0.2s',\n }}\n onClick={(e) => {\n if (isExportDisabled) return;\n handleExportCSV(e);\n }}\n onMouseOver={(e) => {\n if (!isExportDisabled) e.currentTarget.style.backgroundColor = '#E2E8F0';\n }}\n onMouseOut={(e) => {\n if (!isExportDisabled) e.currentTarget.style.backgroundColor = 'rgb(243 243 243)';\n }}\n >\n <span style={{ color: '#475569', fontFamily: 'Lato', fontSize: '13px', fontWeight: 600, whiteSpace: 'nowrap', letterSpacing: '0.3px' }}>\n EXPORT CSV\n </span>\n <span style={{ marginLeft: '6px', display: 'flex', alignItems: 'center' }}>\n <Spin spinning={spinLoading} size=\"small\" />\n </span>\n </div>\n }\n >\n <ExpandedContent\n callReturnProducts={callReturnProducts}\n loading={loading}\n locationloading={locationloading}\n />\n </CollapsableForm>\n );\n}\n\nexport default ProductsInfo;\n","import styled from 'styled-components';\nimport React from 'react';\nimport {\n AntSelect,\n StandardOptionsType,\n} from '@bjsdistribution/dms-component-library';\n\ninterface ActionsDropdownProps {\n label: string;\n placeholder: string;\n options: StandardOptionsType[];\n onSelect: (value: string) => void;\n onSearch?: () => void;\n className?: string;\n value?: string;\n disabled?: boolean;\n defaultValue?: any;\n onChange?: any;\n required?: boolean;\n}\n\nfunction OrderActionsDropdown(props: ActionsDropdownProps) {\n return (\n <Container className={props.className}>\n <Label>\n {props.label}\n {props.required && <RequiredAsterisk>*</RequiredAsterisk>}\n </Label>\n <AntSelect\n options={props.options}\n placeholder={props.placeholder}\n onChange={props.onSelect}\n disabled={props.disabled}\n style={{ width: '100%' }}\n onSearch={props.onSearch}\n showSearch={true}\n popupClassName={'dropDownStyle'}\n selectWrapperClass={'rounded'}\n defaultValue={props.value}\n />\n </Container>\n );\n}\n\nconst RequiredAsterisk = styled.span`\n color: red;\n margin-left: 2px;\n`;\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nexport default OrderActionsDropdown;\n","import { atom, useAtom } from 'jotai';\nimport {\n CreateReminderPayload,\n CreateTaskPayload,\n TaskUpdateType,\n UpdateReminderPayload,\n allTypes,\n resolveTaskPayload,\n splitOrderType,\n} from './types';\nimport { OrdersType } from '../types';\nimport { ordersInitialValue } from '../store';\n\nexport const initialPayload: CreateTaskPayload = {\n description: '',\n is_private: true,\n order_id: null,\n flag_type: '',\n priority: 3,\n status: 'AD',\n // due_datetime: '',\n};\n\nexport const initialValue: CreateReminderPayload = {\n due_datetime: null,\n description: '',\n assigned_to: '',\n order_id: null,\n priority: 3,\n department: '',\n status: false,\n};\n\nexport const updatePayload: UpdateReminderPayload = {\n due_datetime: '',\n description: '',\n assigned_to: '',\n order_id: null,\n priority: null,\n department: null,\n status: false,\n id: null,\n is_deleted: null,\n legacy_reminder_id: null,\n order_data: null,\n reference: null,\n completed_at: null,\n completed_by: null,\n};\n\nexport const flagInitialValue: TaskUpdateType = {\n description: '',\n flag_type: 0,\n priority: 0,\n id: null,\n is_private: false,\n};\n\nexport const resolvedValue: resolveTaskPayload = {\n task_ids: null,\n};\n\nconst allStaticData = atom<allTypes[] | null>([]);\n\nconst taskPriorityData = atom<any>([]);\n\nconst taskCategoryData = atom<any>([]);\n\nconst taskTypeData = atom<any>([]);\n\nconst taskTypeExtended = atom<any>([]);\n\nconst departmentData = atom<any>([]);\n\nconst createTaskPayload = atom<CreateTaskPayload>(initialPayload);\n\nconst createReminderPayload = atom<CreateReminderPayload>(initialValue);\n\nconst reminderUpdatePayload = atom<UpdateReminderPayload>(updatePayload);\n\nconst notificationLabel = atom<any>('');\n\nconst notificationData = atom<any>([]);\n\nconst reminderNotifiData = atom<any>([]);\n\nconst singleFlagData = atom<any>({});\n\nconst flagByIdData = atom<any>({});\n\nconst flagRefId = atom<number | null>(null);\n\nconst ReminderRefId = atom<number | null>(null);\n\nconst reminderData = atom<any>([]);\n\nconst resolvedModalPayload = atom<resolveTaskPayload>(resolvedValue);\n\nconst routeDetails = atom<any>({});\n\nconst orderNotifyCount = atom<number>(0);\n\n//errors\nconst errorMessage = atom<any>({\n taskType: '',\n description: '',\n dueDate: '',\n});\n\nconst defaultLoadingText = {\n title: '',\n subtitle: '',\n};\n\nconst loadingText = atom<{ title: string; subtitle: string } | undefined>(\n defaultLoadingText\n);\n\nconst deptData = atom<any>([]);\n\nconst loading = atom<boolean>(true);\n\nexport function useFlagsLoading() {\n return useAtom(loading);\n}\n\nconst taskLoading = atom<boolean>(true);\n\nexport function useTaskLoading() {\n return useAtom(taskLoading);\n}\n\nexport const initialConfirmOrderErrValues = {\n homeContactError: '',\n workContactError: '',\n mobileError: '',\n emailError: '',\n};\nexport const splitOrderinitialValue: splitOrderType = {\n return_order: 0,\n products: [],\n force: false,\n};\n\nconst errorConfirmOrderAtom = atom(initialConfirmOrderErrValues);\n\nexport function useErrorConfirmOrder() {\n return useAtom(errorConfirmOrderAtom);\n}\n\n//confirm order\nconst confirmOrderDate = atom<any>(null);\n\nexport function useConfirmOrderDate() {\n return useAtom(confirmOrderDate);\n}\n\nconst OrderDetailsConfirmOrder = atom<OrdersType>(ordersInitialValue);\nexport function useOrderDetailsConfirmOrder() {\n return useAtom(OrderDetailsConfirmOrder);\n}\n\nconst splitOrderPayload = atom<splitOrderType>(splitOrderinitialValue);\nexport const resourcesDeliveryDate = atom<{\n action_date: any | null;\n} | null>(null);\nexport function useSplitOrderPayload() {\n return useAtom(splitOrderPayload);\n}\nconst selectedSplitList = atom<any[]>([]);\n\nexport function useSelectedSplit() {\n return useAtom(selectedSplitList);\n}\n\nexport function useLoadingText() {\n return useAtom(loadingText);\n}\n\nexport function useCreateTaskPayload() {\n return useAtom(createTaskPayload);\n}\n\nexport function useCreateReminderPayload() {\n return useAtom(createReminderPayload);\n}\n\nexport function useStaticData() {\n return useAtom(allStaticData);\n}\n\nexport function useTaskPriority() {\n return useAtom(taskPriorityData);\n}\nexport function useCategoryData() {\n return useAtom(taskCategoryData);\n}\n\nexport function useDepartmentData() {\n return useAtom(departmentData);\n}\n\nexport function useNotiifcationLabel() {\n return useAtom(notificationLabel);\n}\n\nexport function useTaskTypeData() {\n return useAtom(taskTypeData);\n}\nexport function useErrorMessage() {\n return useAtom(errorMessage);\n}\nexport function useTaskTypeExtended() {\n return useAtom(taskTypeExtended);\n}\n\nexport function useTasksData() {\n return useAtom(notificationData);\n}\n\nexport function useDeptData() {\n return useAtom(deptData);\n}\n\nexport function useReminderNotiData() {\n return useAtom(reminderNotifiData);\n}\n\nexport function useFlagById() {\n return useAtom(flagByIdData);\n}\n\nconst taskUpdate = atom<TaskUpdateType>(flagInitialValue);\n\nexport function useUpdateTask() {\n return useAtom(taskUpdate);\n}\n\nexport function useSingleFlagData() {\n return useAtom(singleFlagData);\n}\n\nexport function useFlagRefId() {\n return useAtom(flagRefId);\n}\n\nexport function useResolvedPayload() {\n return useAtom(resolvedModalPayload);\n}\n\nexport function useReminderRefId() {\n return useAtom(ReminderRefId);\n}\n\nexport function useReminderById() {\n return useAtom(reminderData);\n}\n\nexport function useUpdateReminderData() {\n return useAtom(reminderUpdatePayload);\n}\n\nexport function useRouteDetails() {\n return useAtom(routeDetails);\n}\nconst allOrderStatus = atom<string | null>(null);\n\nexport function useAllOrderStatus() {\n return useAtom(allOrderStatus);\n}\n\nexport const selectedCategoryIdAtom = atom<any>(null);\nexport const selectedDocumentTypeAtom = atom<any>(null);\nexport const selectedTypeAtom = atom<any>(null);\nexport const selectedVisibilityAtom = atom<any>(null);\nexport const setResourcesCall = atom<boolean>(false);\n\nexport function useOrderNotify() {\n return useAtom(orderNotifyCount);\n}\n","import React from 'react';\nimport OrderActionsDropdown from '../../Dropdown';\nimport { useAtom } from 'jotai';\nimport { useOrderStaticData } from '../../../store';\nimport { selectedDocumentTypeAtom } from '../../store';\n\nfunction DocumentTypeDropdown() {\n const [, setSelectedDocumentType] = useAtom(selectedDocumentTypeAtom);\n const [staticOrderData] = useOrderStaticData();\n\n const documentOptions = staticOrderData?.resource_document_type?.map(\n (x: any) => ({\n id: x?.id,\n label: x?.type,\n value: x?.value,\n })\n );\n\n const onSelectDocumentType = (selectedValue: any) => {\n const selectedOption = documentOptions?.find(\n (option: any) => option.value === selectedValue\n );\n\n if (selectedOption) {\n setSelectedDocumentType(selectedOption.value);\n }\n };\n\n return (\n <OrderActionsDropdown\n label=\"Document Type\"\n required\n placeholder=\"Select Document Type\"\n options={documentOptions}\n onSelect={onSelectDocumentType}\n />\n );\n}\n\nexport default DocumentTypeDropdown;\n","import React from 'react';\nimport OrderActionsDropdown from '../../Dropdown';\nimport { useOrderStaticData } from '../../../store';\nimport { useAtom } from 'jotai';\nimport { selectedCategoryIdAtom } from '../../store';\n\nfunction CategoryDropdown() {\n const [staticOrderData] = useOrderStaticData();\n const [, setSelectedCategoryId] = useAtom(selectedCategoryIdAtom);\n\n const categoryOptions = staticOrderData?.resource_category_type?.map(\n (x: any) => ({\n id: x?.id,\n type: x?.type,\n value: x?.value,\n })\n );\n\n const onSelect = (selectedValue: any) => {\n const selectedOption = categoryOptions?.find(\n (option: any) => option?.value === selectedValue\n );\n\n if (selectedOption) {\n setSelectedCategoryId(selectedOption.value);\n }\n };\n\n return (\n <OrderActionsDropdown\n label=\"Category\"\n required\n placeholder=\"Select Category\"\n options={categoryOptions}\n onSelect={onSelect}\n />\n );\n}\n\nexport default CategoryDropdown;\n","import { RadioButtonGroup } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport { useAtom, useOrderStaticData } from '../../../store';\nimport { capitalize } from '../../../utils';\nimport { selectedVisibilityAtom } from '../../store';\n\nfunction VisibilityRadioButtons() {\n const [staticOrderData] = useOrderStaticData();\n const [selectedVisibility, setSelectedVisibility] = useAtom(\n selectedVisibilityAtom\n );\n\n const visibilityOptions = staticOrderData?.resource_visibility_type?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option.value.toString(),\n })\n );\n\n if (!selectedVisibility) {\n setSelectedVisibility('0');\n }\n\n const handleRadioButtonChange = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n setSelectedVisibility(event.target.value);\n };\n\n return (\n <RadioButtonGroup\n selectedValue={selectedVisibility ?? ''}\n heading=\"Visibility\"\n options={visibilityOptions || []}\n required={true}\n onChange={handleRadioButtonChange}\n />\n );\n}\n\nexport default VisibilityRadioButtons;\n","import React from 'react';\n\nfunction UploadIcon(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"19\"\n viewBox=\"0 0 14 19\"\n fill=\"none\"\n {...props}\n >\n <g opacity=\"0.4\">\n <path\n d=\"M3.5 11.5C3.36739 11.5 3.24021 11.4473 3.14645 11.3536C3.05268 11.2598 3 11.1326 3 11C3 10.8674 3.05268 10.7402 3.14645 10.6464C3.24021 10.5527 3.36739 10.5 3.5 10.5H10.5C10.6326 10.5 10.7598 10.5527 10.8536 10.6464C10.9473 10.7402 11 10.8674 11 11C11 11.1326 10.9473 11.2598 10.8536 11.3536C10.7598 11.4473 10.6326 11.5 10.5 11.5H3.5ZM3.5 14.5C3.36739 14.5 3.24021 14.4473 3.14645 14.3536C3.05268 14.2598 3 14.1326 3 14C3 13.8674 3.05268 13.7402 3.14645 13.6464C3.24021 13.5527 3.36739 13.5 3.5 13.5H10.5C10.6326 13.5 10.7598 13.5527 10.8536 13.6464C10.9473 13.7402 11 13.8674 11 14C11 14.1326 10.9473 14.2598 10.8536 14.3536C10.7598 14.4473 10.6326 14.5 10.5 14.5H3.5Z\"\n fill=\"#0465AC\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.185 0.5H1.5C1.10218 0.5 0.720644 0.658035 0.43934 0.93934C0.158035 1.22064 0 1.60218 0 2V17C0 17.3978 0.158035 17.7794 0.43934 18.0607C0.720644 18.342 1.10218 18.5 1.5 18.5H12.5C12.8978 18.5 13.2794 18.342 13.5607 18.0607C13.842 17.7794 14 17.3978 14 17V6.702C13.9999 6.32647 13.859 5.96464 13.605 5.688L9.291 0.986C9.15041 0.832745 8.97949 0.7104 8.78909 0.626735C8.59869 0.543069 8.39297 0.49991 8.185 0.5ZM1 2C1 1.86739 1.05268 1.74022 1.14645 1.64645C1.24021 1.55268 1.36739 1.5 1.5 1.5H8.185C8.25438 1.49992 8.32302 1.51429 8.38654 1.54218C8.45007 1.57007 8.5071 1.61087 8.554 1.662L12.868 6.364C12.9528 6.45616 12.9999 6.57678 13 6.702V17C13 17.1326 12.9473 17.2598 12.8536 17.3536C12.7598 17.4473 12.6326 17.5 12.5 17.5H1.5C1.36739 17.5 1.24021 17.4473 1.14645 17.3536C1.05268 17.2598 1 17.1326 1 17V2Z\"\n fill=\"#0465AC\"\n />\n <path\n d=\"M8 6.5H13.5C13.6326 6.5 13.7598 6.55268 13.8536 6.64645C13.9473 6.74021 14 6.86739 14 7C14 7.13261 13.9473 7.25979 13.8536 7.35355C13.7598 7.44732 13.6326 7.5 13.5 7.5H7.5C7.36739 7.5 7.24021 7.44732 7.14645 7.35355C7.05268 7.25979 7 7.13261 7 7V1C7 0.867392 7.05268 0.740215 7.14645 0.646447C7.24021 0.552678 7.36739 0.5 7.5 0.5C7.63261 0.5 7.75979 0.552678 7.85355 0.646447C7.94732 0.740215 8 0.867392 8 1V6.5Z\"\n fill=\"#0465AC\"\n />\n </g>\n </svg>\n );\n}\nexport default UploadIcon;\n","import React, { useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { Button, CrossIcon } from '@bjsdistribution/dms-component-library';\nimport UploadIcon from '../../../../../assets/icons/UploadIcon';\nimport { atom, useAtom } from 'jotai';\nimport { notification } from 'antd';\n// Store uploaded files\nexport const uploadedFilesAtom = atom<File[]>([]);\n\n// Allowed file MIME types\nconst allowedFileTypes = ['image/jpeg', 'image/png', 'application/pdf'];\n\nfunction DocFileUpload() {\n const [uploadedFiles, setUploadedFiles] = useAtom(uploadedFilesAtom);\n const [dragging, setDragging] = useState(false);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const isDuplicate = (file: File) =>\n uploadedFiles?.some(\n existing =>\n existing?.name === file?.name &&\n existing?.size === file?.size &&\n existing?.lastModified === file?.lastModified\n );\n\n const handleFileUpload = (files: FileList | null) => {\n if (!files) return;\n\n const validFiles: File[] = [];\n const rejectedFiles: File[] = [];\n\n Array.from(files).forEach(file => {\n const isValidType = allowedFileTypes?.includes(file.type);\n const isNew = !isDuplicate(file);\n\n if (isValidType && isNew) {\n validFiles?.push(file);\n } else {\n rejectedFiles?.push(file);\n }\n });\n\n if (validFiles?.length > 0) {\n setUploadedFiles(prev => [...prev, ...validFiles]);\n validFiles?.forEach(file =>\n notification.success({\n message: 'Success',\n description: `${file.name} added successfully.`,\n })\n );\n }\n\n if (rejectedFiles?.length > 0) {\n notification.error({\n message: 'Some files were not added',\n description: 'Either they were duplicates or not JPEG/PNG/PDF format.',\n });\n }\n };\n\n const handleRemoveFile = (indexToRemove: number) => {\n const updated = uploadedFiles?.filter((_, i) => i !== indexToRemove);\n setUploadedFiles(updated);\n notification.info({ message: 'File Removed' });\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n setDragging(true);\n };\n\n const handleDragLeave = () => setDragging(false);\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setDragging(false);\n handleFileUpload(e.dataTransfer.files);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFileUpload(e.target.files);\n e.target.value = ''; // Allow re-upload of same file\n };\n\n const handleButtonClick = () => fileInputRef.current?.click();\n\n return (\n <MainContainer>\n <DraggerContainer\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n dragging={dragging}\n >\n <Container>\n <UploadButton\n type=\"button\"\n shape=\"rounded\"\n onClick={handleButtonClick}\n >\n UPLOAD FILE\n </UploadButton>\n <FileInput\n type=\"file\"\n accept={allowedFileTypes.join(',')}\n multiple\n onChange={handleInputChange}\n ref={fileInputRef}\n />\n <IconContainer>\n <UploadIcon />\n </IconContainer>\n <TextContainer>\n <Text1>or drag and drop your files</Text1>\n <Text2>Photos (JPEG, PNG) or PDF documents</Text2>\n </TextContainer>\n </Container>\n </DraggerContainer>\n\n {uploadedFiles.length > 0 && (\n <UploadedFilesContainer>\n <FilesTitle>Uploaded Files:</FilesTitle>\n <FilesList>\n {uploadedFiles?.map((file, index) => (\n <FileItem key={`${file.name}-${index}`}>\n {file.name} - {(file.size / 1024).toFixed(2)} KB\n <CrossIcon\n style={{ cursor: 'pointer', marginLeft: 8 }}\n onClick={() => handleRemoveFile(index)}\n />\n </FileItem>\n ))}\n </FilesList>\n </UploadedFilesContainer>\n )}\n </MainContainer>\n );\n}\n\nconst MainContainer = styled.div`\n width: 100%;\n`;\n\nconst DraggerContainer = styled.div<{ dragging: boolean }>`\n width: 100%;\n padding: 6px;\n border-radius: 30px;\n border: ${props =>\n props.dragging ? '2px dashed #0465ac' : '1px solid #e0e2e7'};\n background-color: #fff;\n transition: border-color 0.3s ease;\n cursor: pointer;\n`;\n\nconst Container = styled.div`\n display: flex;\n gap: 8px;\n padding: 6px;\n align-items: center;\n border-radius: 30px;\n background: #fff;\n`;\n\nconst UploadButton = styled(Button)`\n font-size: 14px;\n padding: 7px 20px;\n height: auto;\n border-radius: 20px;\n`;\n\nconst FileInput = styled.input`\n display: none;\n`;\n\nconst IconContainer = styled.div`\n border: 1px dashed #0465ac;\n padding: 5px;\n display: flex;\n align-items: center;\n`;\n\nconst TextContainer = styled.div``;\n\nconst Text1 = styled.p`\n color: #aea9a1;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-weight: 500;\n margin: 0;\n`;\n\nconst Text2 = styled.p`\n color: #bcbab7;\n font-family: 'Roboto', sans-serif;\n font-size: 13px;\n font-weight: 400;\n margin: 0;\n`;\n\nconst UploadedFilesContainer = styled.div`\n margin-top: 20px;\n border-top: 1px solid #e0e2e7;\n padding-top: 10px;\n`;\n\nconst FilesTitle = styled.h4`\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n color: #0465ac;\n`;\n\nconst FilesList = styled.ul`\n overflow: auto;\n max-height: 200px;\n list-style-type: none;\n padding: 0;\n`;\n\nconst FileItem = styled.li`\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n color: #333;\n margin: 5px 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport default DocFileUpload;\n","import { DatePicker, DatePickerProps } from 'antd';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport { resourcesDeliveryDate } from '../../store';\nimport { useAtom } from 'jotai';\nimport { useOrderDetails, usePrevOrderDetails } from '../../../store';\n\nfunction DeliveryDate() {\n const [deliveryDate, setDeliveryDate] = useAtom(resourcesDeliveryDate);\n const [orderDetails] = useOrderDetails();\n const [prevOrderDetails] = usePrevOrderDetails();\n\n useEffect(() => {\n if (prevOrderDetails?.action_date) {\n setDeliveryDate({\n action_date: dayjs(prevOrderDetails?.action_date).format('YYYY-MM-DD'),\n });\n }\n }, [prevOrderDetails, setDeliveryDate]);\n\n const originalDate = orderDetails?.action_date\n ? dayjs(orderDetails.action_date)\n : null;\n\n const currentPickedDate = deliveryDate?.action_date\n ? dayjs(deliveryDate.action_date)\n : null;\n\n const pickerValue = currentPickedDate || originalDate || null;\n\n const onChange: DatePickerProps['onChange'] = date => {\n const selected = date ? date.format('YYYY-MM-DD') : null;\n\n const prevDate = prevOrderDetails?.action_date\n ? dayjs(prevOrderDetails?.action_date).format('YYYY-MM-DD')\n : null;\n\n if (selected && prevDate && selected === prevDate) {\n setDeliveryDate({\n action_date: prevDate,\n });\n return;\n }\n\n if (selected) {\n setDeliveryDate({\n action_date: selected,\n });\n return;\n }\n\n setDeliveryDate({\n action_date: null,\n });\n };\n\n return (\n <Container>\n <Label>Delivery Date</Label>\n\n <DatePicker\n format=\"YYYY-MM-DD\"\n value={pickerValue}\n onChange={onChange}\n disabledDate={current =>\n current && current.isBefore(dayjs().startOf('day'))\n }\n allowClear={false}\n style={{ borderRadius: '15px', minWidth: '60px' }}\n />\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nexport default DeliveryDate;\n","import React, { useEffect, useState } from 'react';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport DocumentTypeDropdown from './DocumentTypeDropdown';\nimport styled from 'styled-components';\nimport CategoryDropdown from './CategoryDropdown';\nimport VisibilityRadioButtons from './Visibility';\nimport DocFileUpload, { uploadedFilesAtom } from './DocFileUpload';\nimport {\n useAtom,\n useCurrentAction,\n useCustomerInfo,\n useOrderId,\n useOrderProductsResources,\n useOrderStaticData,\n} from '../../../store';\nimport {\n resourcesDeliveryDate,\n selectedCategoryIdAtom,\n selectedDocumentTypeAtom,\n selectedTypeAtom,\n selectedVisibilityAtom,\n // setResourcesCall,\n} from '../../store';\nimport OrderActionsDropdown from '../../Dropdown';\nimport { notification } from 'antd';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../../types';\nimport { useClientPortal } from '../../../../store';\nimport ResourcesDeliveryDate from './DeliveryDate';\n\nfunction AddResources() {\n const [, setCurrentAction] = useCurrentAction();\n const [staticOrderData] = useOrderStaticData();\n const [, setSelectedType] = useAtom(selectedTypeAtom);\n const [uploadedFiles, setUploadedFiles] = useAtom(uploadedFilesAtom);\n const [isFormValid, setIsFormValid] = useState(false);\n const [selectedCategoryId] = useAtom(selectedCategoryIdAtom);\n const [selectedDocumentType] = useAtom(selectedDocumentTypeAtom);\n const [selectedType] = useAtom(selectedTypeAtom);\n const [resourcesDeliverDate] = useAtom(resourcesDeliveryDate);\n const [orderId] = useOrderId();\n const [selectedVisibility] = useAtom(selectedVisibilityAtom);\n const [isClientPortal] = useClientPortal();\n const [, setOrderResources] = useOrderProductsResources();\n\n //add resources POST API\n const category = String(selectedCategoryId).toLowerCase();\n\n const baseEndpoint = `/orders/${orderId}/order_resources/?document_type=${selectedDocumentType}&type=${selectedType}&category=${selectedCategoryId}&visibility=${selectedVisibility}`;\n const finalEndpoint =\n category === 'pod'\n ? `${baseEndpoint}&date=${resourcesDeliverDate?.action_date}`\n : baseEndpoint;\n\n const { fetchData: callResourcesAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: finalEndpoint,\n method: 'POST',\n });\n\n const onClose = () => {\n setCurrentAction(undefined);\n setUploadedFiles([]);\n };\n\n const [customerInfo] = useCustomerInfo();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n const typeOptions = staticOrderData?.resource_type?.map((x: any) => ({\n id: x?.id,\n type: x?.type,\n value: x?.value,\n }));\n\n const onSelectCancelReason = (selectedValue: any) => {\n const selectedOption = typeOptions?.find(\n (option: any) => option?.value === selectedValue\n );\n if (selectedOption) {\n setSelectedType(selectedOption.value);\n }\n };\n console.log(uploadedFiles, 'filesfiles');\n\n const handleSubmit = async () => {\n if (!uploadedFiles || uploadedFiles?.length === 0) {\n notification.error({ message: 'No files selected' });\n return;\n }\n\n const formData = new FormData();\n uploadedFiles?.forEach(file => {\n formData.append('files', file); // Adjust key as per API\n });\n\n try {\n const response = (await callResourcesAPI({\n payload: formData,\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n\n console.log('Upload successful:', response);\n notification.success({ message: 'Files uploaded successfully' });\n\n onClose(); // Close modal\n await fetchOrderResources();\n } catch (error) {\n const err = error as any;\n const status = err?.response?.status;\n const rawError = err?.response?.data?.error || '';\n\n let errMsg = 'An unexpected error occurred.';\n\n if (status === 413) {\n errMsg = 'File is too large. Please upload a smaller file.';\n } else if (rawError.includes('413')) {\n errMsg = 'File size exceeds the allowed limit.';\n } else if (err?.message) {\n errMsg = err.message;\n }\n\n notification.error({\n message: 'Upload Failed',\n description: errMsg,\n });\n }\n };\n\n useEffect(() => {\n const isPOD = String(selectedCategoryId)?.toLowerCase() === 'pod';\n setIsFormValid(\n !!selectedType &&\n !!selectedDocumentType &&\n !!selectedCategoryId &&\n uploadedFiles?.length > 0 &&\n selectedVisibility !== null &&\n selectedVisibility !== undefined &&\n (isPOD ? !!resourcesDeliverDate : true)\n );\n }, [\n selectedType,\n selectedDocumentType,\n selectedCategoryId,\n uploadedFiles,\n selectedVisibility,\n resourcesDeliverDate,\n ]);\n\n // Order resources\n const {\n data: fetchedResourcesData,\n fetchData: fetchOrderResources,\n loading: orderresourcesLoading,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/${orderId}/order_resources/`,\n method: 'GET',\n ...(isClientPortal && {\n filters: [{ field: 'is_private', op: '=', value: 0 }],\n }),\n });\n\n useEffect(() => {\n if (fetchedResourcesData && fetchedResourcesData?.data) {\n setOrderResources(fetchedResourcesData?.data);\n }\n }, [orderresourcesLoading]);\n\n return (\n <OrderActionModal\n headerTitle=\"ADD RESOURCE\"\n showAdditionalInfo\n infoText={infoText}\n onCloseHeader={onClose}\n onSubmit={handleSubmit}\n isSubmitDisabled={!isFormValid}\n >\n <ContentContainer>\n <Top>\n <DocumentTypeDropdown />\n\n <OrderActionsDropdown\n label=\"Type\"\n required\n placeholder=\"Select Type\"\n options={typeOptions}\n onSelect={onSelectCancelReason}\n />\n <CategoryDropdown />\n <VisibilityRadioButtons />\n {String(selectedCategoryId)?.toLowerCase() === 'pod' && (\n <ResourcesDeliveryDate />\n )}\n </Top>\n <Bottom>\n <Label>File</Label> <RequiredAsterisk>*</RequiredAsterisk>\n <DocFileUpload />{' '}\n </Bottom>\n </ContentContainer>\n </OrderActionModal>\n );\n}\nconst RequiredAsterisk = styled.span`\n color: red;\n margin-left: 2px;\n`;\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst ContentContainer = styled.div`\n padding: 20px;\n border-radius: 15px;\n background: #f8fafc;\n margin: 0 20px;\n\n @media (max-width: 768px) {\n margin: 0;\n padding: 16px;\n }\n`;\n\nconst Top = styled.div`\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n align-items: center;\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 600px) {\n grid-template-columns: 1fr;\n }\n`;\n\nconst Bottom = styled.div`\n width: 100%;\n margin-top: 25px;\n\n display: flex;\n flex-direction: column;\n\n @media (max-width: 600px) {\n margin-top: 20px;\n }\n`;\n\nexport default AddResources;\n","import styled from 'styled-components';\n\n// Styled components\nexport const StyledTableWrapper = styled.div`\n overflow-x: auto;\n max-height: calc(100vh - 290px);\n scrollbar-width: none;\n /* box-shadow: 0px 0px 30px 6px rgba(46, 45, 116, 0.05); */\n &::-webkit-scrollbar {\n width: 5px;\n border-radius: 100px;\n height: 5px;\n }\n\n &::-webkit-scrollbar-track {\n background: #777;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #7b61ff;\n border-radius: 100px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background: #7b61ff;\n }\n`;\n\nexport const StyledTable = styled.table`\n border-spacing: 0 10px;\n width: 100%;\n padding: 10px;\n thead {\n tr {\n border-radius: 40px;\n border-spacing: 0 10px;\n th {\n color: #3a3630;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n padding: 5px 15px;\n background: #f0f2f2;\n border-right: none;\n border-left: none;\n text-align: left;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-width: 1px 0;\n text-transform: capitalize;\n &:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n &:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n }\n }\n }\n tbody {\n tr {\n td {\n color: #3a3630;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n padding: 12px 15px;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n }\n .link {\n color: #09f;\n font-family: Roboto;\n font-weight: 400;\n cursor: pointer;\n }\n td {\n .flex {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n .overDue {\n border-radius: 20px;\n border: 1px solid #edebe8;\n background: #fff;\n padding: 4px 8px;\n color: #e95252;\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: 16px;\n }\n }\n &:nth-child(even) td {\n background: #f6fbff;\n }\n td:first-child {\n border-radius: 100px 0 0 100px;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n }\n td:last-child {\n border-radius: 0px 100px 100px 0;\n border-right: 1px solid rgba(0, 0, 0, 0.08);\n }\n .emptyTd {\n border-radius: 100px !important;\n }\n .flex {\n display: flex;\n flex-direction: row;\n gap: 5px;\n height: 29px;\n align-items: center;\n }\n\n &.insideTable {\n td {\n border-radius: 0;\n border: none;\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n table {\n border-spacing: 0;\n width: 100%;\n border-radius: 5px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n overflow: hidden;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n thead {\n tr {\n border-bottom: none;\n th {\n padding: 14px 20px;\n text-align: left;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n background: #f8fafc;\n &:first-child {\n border-radius: 0;\n border-left: 1px solid rgba(0, 0, 0, 0.08);\n border-top-left-radius: 15px;\n }\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n tbody {\n tr {\n td {\n padding: 14px 20px;\n text-align: left;\n border-bottom: 1px solid rgba(58, 54, 48, 0.15);\n background: #fff;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n &:last-child {\n border-radius: 0;\n border-right: none;\n }\n }\n }\n }\n }\n }\n }\n }\n .actions {\n display: flex;\n align-items: center;\n gap: 20px;\n > svg {\n transform: scale(1.5);\n background-color: #edebe8;\n border-radius: 20px;\n padding: 5px;\n }\n\n .close-icon {\n transform: scale(1.3);\n background-color: transparent;\n border-radius: 0;\n padding: 0;\n }\n }\n`;\n\nexport const EmptyDataContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const Badge = styled.div`\n div {\n display: flex;\n min-width: 85px;\n padding: 6px 10px;\n justify-content: center;\n align-items: center;\n gap: 5px;\n border-radius: 22px;\n font-family: 'Open Sans';\n font-size: 12px;\n font-style: normal;\n font-weight: 600;\n line-height: normal;\n }\n`;\n\nexport const BadgeStatus = styled.div`\n &.pending {\n background: #fff1d6;\n color: #f4a503;\n }\n\n &.resolved {\n background: rgba(41, 204, 106, 0.15);\n color: #1f9254;\n }\n\n &.overdue {\n background: rgba(233, 82, 82, 0.15);\n color: var(--contextual-red, #e95252);\n }\n`;\n\nexport const ClearAll = styled.div`\n border-radius: 20px;\n border: 1px solid #edebe8;\n background: #fff;\n display: flex;\n padding: 6px 6px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n\n &.active {\n background: #313130;\n & > div {\n color: #fff;\n }\n }\n`;\nexport const StyledFilterBtnIcon = styled.div`\n display: flex;\n width: 24px;\n height: 24px;\n justify-content: center;\n align-items: center;\n border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #f1f5f6;\n .cross {\n position: relative;\n &:after {\n display: inline-block;\n content: 'X';\n font-style: normal;\n font-size: 14px;\n color: #000;\n }\n }\n`;\nexport const StyledFilterBtnLabel = styled.div`\n color: #6a7378;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n white-space: nowrap;\n`;\n\n\n\n","import React, { useEffect, useState } from 'react';\nimport { useProductDetails } from '../../../store';\n\nimport { Empty, Skeleton } from 'antd';\nimport { Checkbox } from '@bjsdistribution/dms-component-library';\nimport { useLoading } from '../../../../order-daily-overview/store/store';\nimport { useSelectedSplit, useSplitOrderPayload } from '../../store';\nimport {\n EmptyDataContainer,\n StyledTable,\n StyledTableWrapper,\n} from '../confirm-order/tables/ReminderStyles';\n\nfunction SplitOrderTable() {\n const [orderProductDetails] = useProductDetails();\n const [loading] = useLoading();\n const [selectedSplits, setSelectedSplit] = useSelectedSplit();\n const [selectAll, setSelectAll] = useState(false);\n const [payload, setPayload] = useSplitOrderPayload();\n\n // Handle Select All\n const handleSelectAll = (e: any) => {\n const isChecked = e.target.checked;\n setSelectAll(isChecked);\n\n if (isChecked) {\n setSelectedSplit(\n orderProductDetails?.map((order: any) => ({ id: order.id }))\n );\n } else {\n setSelectedSplit([]);\n }\n };\n\n const handleSelectedSplitList = (id: any) => {\n setSelectedSplit(prevSelectedOrder => {\n const isSelected = prevSelectedOrder?.some(order => order.id === id);\n\n const updatedSelection = isSelected\n ? prevSelectedOrder?.filter(order => order.id !== id)\n : [...prevSelectedOrder, { id }];\n\n setSelectAll(updatedSelection?.length === orderProductDetails?.length);\n\n return updatedSelection;\n });\n };\n\n useEffect(() => {\n setPayload({\n ...payload,\n return_order: 1, // FOR SPLIT ORDER WE ARE ASKED TO SET THIS AS 1\n products: selectedSplits?.map(order => order.id),\n force: true,\n });\n }, [selectedSplits, setPayload]);\n\n return (\n <StyledTableWrapper id=\"tableScrolling\">\n <StyledTable>\n <thead>\n <tr>\n <th style={{ position: 'relative' }}>\n <Checkbox\n checked={selectAll}\n onChange={handleSelectAll}\n disabled={\n orderProductDetails?.length === 0 ||\n orderProductDetails?.length === null\n }\n />\n </th>\n <th>Type</th>\n <th>Code</th>\n <th>Scan</th>\n <th>Description</th>\n <th>Delivery Instructions</th>\n <th>Barcode</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={6}>\n <Skeleton active />\n </td>\n <td colSpan={6}></td>\n </tr>\n ) : orderProductDetails?.length === 0 ? (\n <tr>\n <td className=\"emptyTd\" colSpan={7}>\n <EmptyDataContainer>\n <Empty description=\"No Data Found\" />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n orderProductDetails?.length > 0 &&\n orderProductDetails?.map((order: any) => (\n <tr key={order.id}>\n <td style={{ position: 'relative' }}>\n <Checkbox\n checked={selectedSplits?.some(\n selectedOrder => selectedOrder.id === order.id\n )}\n onChange={() => handleSelectedSplitList(order.id)}\n />\n </td>\n <td>{order?.order_product_type?.type}</td>\n <td>{order?.code}</td>\n <td>{order?.description}</td>\n <td>{order?.description}</td>\n <td>{order?.description}</td>\n <td>{order?.sku}</td>\n </tr>\n ))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n );\n}\n\nexport default SplitOrderTable;\n","import React, { useEffect } from 'react';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport styled from 'styled-components';\nimport SplitOrderTable from './SplitOrderTable';\nimport { useCurrentAction, useOrderDetails, useOrderId } from '../../../store';\nimport { useApiHook } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../../types';\n\nimport { useSelectedSplit, useSplitOrderPayload } from '../../store';\nimport { notification } from 'antd';\nimport { useNavigate } from 'react-router-dom';\n\nfunction SplitOrder() {\n const [, setCurrentAction] = useCurrentAction();\n const [orderDetails] = useOrderDetails();\n const orderRecipient = orderDetails?.order_recipient;\n const infoText = `${orderRecipient?.recipient_name}, ${orderRecipient?.postcode}`;\n const [orderId, setOrderID] = useOrderId();\n const [payload] = useSplitOrderPayload();\n const [seledtedSplitOrder, setSelectedSplit] = useSelectedSplit();\n\n const onClose = () => {\n setCurrentAction(undefined);\n };\n const navigate = useNavigate();\n const {\n data: response,\n setShouldPerformAction: setPerformAction,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/return/split/${orderId}`,\n method: 'POST',\n body: payload,\n performAction: false,\n });\n\n const onSubmitSplitOrder = () => {\n if (orderId) {\n setPerformAction(true);\n }\n };\n //@ts-ignore\n const newId = response?.data?.new_order;\n useEffect(() => {\n //@ts-ignore\n if (response?.code === 200) {\n const currentPath = location.pathname\n .split('/')\n .slice(0, -1)\n .join('/');\n console.log(currentPath, 'currentPath');\n navigate(`${currentPath}/${newId}`);\n setOrderID(newId);\n setSelectedSplit([]);\n notification.success({\n message: 'Success',\n description:\n //@ts-ignore\n response?.message || 'Sucess',\n });\n setCurrentAction(undefined);\n setSelectedSplit([]);\n }\n }, [response]);\n\n const isSubmitDisabled = () => {\n if (seledtedSplitOrder?.length > 0) {\n return !seledtedSplitOrder;\n }\n return true;\n };\n\n return (\n <OrderActionModal\n headerTitle=\"Split Order\"\n showAdditionalInfo\n infoText={infoText}\n onCloseHeader={onClose}\n onSubmit={onSubmitSplitOrder}\n submitBtnTitle=\"Split Order\"\n footerActions={\n <>\n {/* <CheckContainer>\n <label className=\"check\">\n <input type=\"checkbox\" />\n Force Split\n </label>\n </CheckContainer> */}\n </>\n }\n isSubmitDisabled={isSubmitDisabled()}\n >\n <ContentContainer>\n <SplitOrderTable />\n </ContentContainer>\n </OrderActionModal>\n );\n}\n\nconst ContentContainer = styled.div`\n /* display: flex; */\n padding: 15px 12px;\n flex: 1 0 0;\n border-radius: 15px;\n background: white;\n display: flex;\n flex-direction: column;\n gap: 15px;\n overflow: auto;\n min-height: 500px;\n overflow-x: hidden;\n max-height: 500px;\n scrollbar-width: thin;\n`;\n\nexport default SplitOrder;\n","import { useCancelOrderProducts, useOrderStaticData } from '../../../store';\nimport { CancelOrderProductsType } from '../../../types';\nimport OrderActionsDropdown from '../../Dropdown';\nimport React from 'react';\nfunction ReturnAction() {\n const [orderStaticData] = useOrderStaticData();\n const [, setCancelOrderProducts] = useCancelOrderProducts();\n // const onSearch = () => {};\n\n const returnActionOptions = orderStaticData?.order_product_return_action?.map(\n (option: any) => ({\n label: option?.value,\n value: option?.value,\n })\n );\n\n const onSelect = (selectedValue: any) => {\n setCancelOrderProducts((prev: CancelOrderProductsType[]) =>\n prev?.map((item: any) => ({\n ...item,\n action: 'return',\n return_action: selectedValue,\n }))\n );\n };\n\n return (\n <OrderActionsDropdown\n label=\"Return Action\"\n placeholder=\"Select Return Action\"\n options={returnActionOptions}\n onSelect={onSelect}\n // onSearch={onSearch}\n />\n );\n}\n\nexport default ReturnAction;\n","import { useCancelOrderProducts, useOrderStaticData } from '../../../store';\nimport { CancelOrderProductsType } from '../../../types';\nimport OrderActionsDropdown from '../../Dropdown';\nimport React from 'react';\nfunction ReturnReason() {\n const [orderStaticData] = useOrderStaticData();\n const [, setCancelOrderProducts] = useCancelOrderProducts();\n\n const returnReasonsOptions = orderStaticData?.return_reasons?.map(\n (option: any) => ({\n label: option?.reason,\n value: option?.reason,\n })\n );\n const onSelect = (selectedValue: any) => {\n setCancelOrderProducts((prev: CancelOrderProductsType[]) =>\n prev?.map((item: any) => ({\n ...item,\n action: 'return',\n return_reason: selectedValue,\n }))\n );\n };\n // const onSearch = () => {};\n\n return (\n <OrderActionsDropdown\n label=\"Return Reason\"\n placeholder=\"Select Return Reason\"\n options={returnReasonsOptions}\n onSelect={onSelect}\n // onSearch={onSearch}\n />\n );\n}\n\nexport default ReturnReason;\n","import React from 'react';\n\nconst DeliverProductIcon = () => {\n return (\n <svg\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 18 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_2123_194397)\">\n <path\n d=\"M16.1579 5.78943V9.99996M1 5.78943V14.3461C1 15.5107 2.63874 16.2029 5.91537 17.5865C7.23158 18.1431 7.89011 18.421 8.57895 18.421V9.4568M11.1053 15.8947C11.1053 15.8947 11.8421 15.8947 12.5789 17.5789C12.5789 17.5789 14.92 13.3684 17 12.5263\"\n stroke=\"#36A053\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3.52632 9.99997L5.21053 10.8421M12.7895 3.26313L4.36842 7.47366M5.48505 8.05555L3.02526 6.86566C1.67537 6.21218 1 5.88544 1 5.36839C1 4.85134 1.67537 4.5246 3.02526 3.87113L5.48421 2.68123C7.00421 1.94608 7.76211 1.57892 8.57895 1.57892C9.39579 1.57892 10.1545 1.94608 11.6728 2.68123L14.1326 3.87113C15.4825 4.5246 16.1579 4.85134 16.1579 5.36839C16.1579 5.88544 15.4825 6.21218 14.1326 6.86566L11.6737 8.05555C10.1537 8.79071 9.39579 9.15787 8.57895 9.15787C7.76211 9.15787 7.00337 8.79071 5.48505 8.05555Z\"\n stroke=\"#36A053\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2123_194397\">\n <rect\n width=\"18\"\n height=\"18.8421\"\n fill=\"white\"\n transform=\"translate(0 0.578918)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nexport default DeliverProductIcon;\n","import React from 'react';\n\nconst ReturnProductIcon = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"16\"\n viewBox=\"0 0 18 16\"\n fill=\"none\"\n >\n <path\n d=\"M7.39996 7.20159H10.5999M11.0311 11.1824L13.2127 11.14C14.0815 11.124 15.8023 11.3376 15.8023 13.1424C15.8023 15.0143 14.0031 15.1983 13.1927 15.1983H5.83997C4.13758 15.1983 1.8016 14.8207 1.8016 11.608V4.79761M11.0311 11.1824C11.0339 11.02 11.0998 10.8654 11.2159 10.752L12.5871 9.58878M11.0311 11.1824C11.0283 11.2684 11.0426 11.354 11.0749 11.4338C11.1071 11.5136 11.1557 11.5857 11.2175 11.6456L12.5871 12.7768M16.1831 4.79761V8.81998M15.5583 0.801636H2.4416C1.8416 0.801636 1.5408 0.801636 1.3328 0.943235C1.23031 1.01294 1.14541 1.1055 1.0848 1.21363C0.962405 1.43203 0.992005 1.72563 1.052 2.31443C1.152 3.29682 1.2016 3.78802 1.4624 4.13841C1.5928 4.31441 1.7576 4.46081 1.9472 4.57041C2.328 4.79201 2.82879 4.79201 3.83119 4.79201H14.1687C15.1711 4.79201 15.6719 4.79201 16.0527 4.57041C16.2423 4.46081 16.4071 4.31441 16.5375 4.13841C16.7983 3.78802 16.8479 3.29682 16.9479 2.31443C17.0079 1.72563 17.0375 1.43203 16.9159 1.21363C16.8551 1.10542 16.7699 1.01284 16.6671 0.943235C16.4591 0.801636 16.1583 0.801636 15.5583 0.801636Z\"\n stroke=\"#E95252\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default ReturnProductIcon;\n","import React from 'react';\nimport { useCancelOrderProducts, useOrderStaticData } from '../../../store';\nimport { useLoading } from '../../../../order-daily-overview/store/store';\nimport { Empty, Select, Skeleton } from 'antd';\n// import { AntSelect } from '@bjsdistribution/dms-component-library';\nimport { CancelOrderProductsType } from '../../../types';\nimport OrderActionsDropdown from '../../Dropdown';\nimport styled from 'styled-components';\nimport DeliverProductIcon from '../../../../../assets/icons/DeliverProductIcon';\nimport ReturnProductIcon from '../../../../../assets/icons/ReturnProductIcon';\nimport { EmptyDataContainer } from '../charge-log';\n\nconst deliverTypeOptions = [\n {\n label: 'Deliver',\n value: 'deliver',\n icon: <DeliverProductIcon />,\n },\n {\n label: 'Return',\n value: 'return',\n icon: <ReturnProductIcon />,\n },\n];\n\nconst collectTypeOptions = [\n {\n label: 'Return',\n value: 'return',\n icon: <ReturnProductIcon />,\n },\n];\n\nconst CancelOrderTable = () => {\n const [\n cancelOrderProducts,\n setCancelOrderProducts,\n ] = useCancelOrderProducts();\n\n const [loading] = useLoading();\n const [orderStaticData] = useOrderStaticData();\n\n if (!cancelOrderProducts?.length) {\n return null;\n }\n\n const returnReasonsOptions = orderStaticData?.return_reasons?.map(\n (option: any) => ({\n label: option?.reason,\n value: option?.reason,\n })\n );\n\n const returnActionOptions = orderStaticData?.order_product_return_action?.map(\n (option: any) => ({\n label: option?.value,\n value: option?.value,\n })\n );\n\n const onChange = (\n selectedVal: string,\n id: number,\n type: keyof CancelOrderProductsType\n ) => {\n console.log(selectedVal, id, type);\n const updatedList = cancelOrderProducts?.map(\n (item: CancelOrderProductsType) => {\n const newItem =\n item.order_product_id === id\n ? {\n ...item,\n [type]: selectedVal,\n }\n : item;\n return newItem;\n }\n );\n setCancelOrderProducts(updatedList);\n };\n\n return (\n <div>\n <StyledTableWrapper>\n <StyledTable className=\"scrollClass\">\n <thead>\n <tr>\n <th>Status</th>\n <th>Code</th>\n <th>Description</th>\n <th>SKU</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={4}>\n <Skeleton active />\n </td>\n </tr>\n ) : cancelOrderProducts?.length === 0 ? (\n <tr>\n <td className=\"emptyTd\" colSpan={4}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n cancelOrderProducts?.map((product: CancelOrderProductsType) => {\n const dropdownOptions =\n product?.product_type === 'deliver'\n ? deliverTypeOptions\n : collectTypeOptions;\n\n const isReturn = product?.action === 'return';\n\n return (\n <tr\n key={product?.order_product_id}\n style={{\n boxShadow: '0px 1px 3px 0px rgba(16, 24, 40, 0.1)',\n }}\n >\n <td colSpan={4}>\n <table style={{ width: '100%' }}>\n <tbody>\n <tr>\n <td style={{ width: '25%' }}>\n <CustomSelectDropdown\n options={dropdownOptions}\n placeholder=\"Select\"\n onChange={(val: any) =>\n onChange(\n val,\n product?.order_product_id!,\n 'action'\n )\n }\n prefix={\n product?.action === 'deliver' ? (\n <DeliverProductIcon />\n ) : product?.action === 'return' ? (\n <ReturnProductIcon />\n ) : (\n <></>\n )\n }\n style={{ width: '100%' }}\n value={dropdownOptions?.filter(\n (item: any) => item?.value === product?.action\n )}\n optionRender={(option: any) => (\n <div\n style={{\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n }}\n >\n <span\n style={{ display: 'flex' }}\n aria-label={option.data.label}\n >\n {option.data.icon}\n </span>\n <span style={{ color: '#8D8F90' }}>\n {option.data.label}\n </span>\n </div>\n )}\n />\n </td>\n <td style={{ width: '25%' }}>{product?.code}</td>\n <td style={{ width: '25%' }}>\n {product?.description}\n </td>\n <td style={{ width: '25%' }}>{product?.sku}</td>\n </tr>\n\n {isReturn && (\n <tr>\n <td colSpan={4}>\n <ReturnRowWrapper>\n <StyledDropdown\n label=\"Return Action\"\n required\n placeholder=\"Select action\"\n options={returnActionOptions}\n onSelect={(val: any) =>\n onChange(\n val,\n product?.order_product_id!,\n 'return_action'\n )\n }\n value={returnActionOptions?.filter(\n (option: any) =>\n option.value === product?.return_action\n )}\n />\n <StyledDropdown\n label=\"Return Reason\"\n required\n placeholder=\"Select reason\"\n options={returnReasonsOptions}\n onSelect={(val: any) =>\n onChange(\n val,\n product?.order_product_id!,\n 'return_reason'\n )\n }\n value={returnReasonsOptions?.filter(\n (option: any) =>\n option.value === product?.return_reason\n )}\n />\n </ReturnRowWrapper>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </td>\n </tr>\n );\n })\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </div>\n );\n};\n\nconst CustomSelectDropdown: any = styled(Select)`\n .ant-select-selector {\n border-radius: 25px !important;\n /* border: none !important; */\n min-width: 100px;\n padding: 0 10px;\n display: flex;\n gap: 10px;\n align-items: center;\n\n .ant-select-prefix {\n margin-top: 3px;\n }\n }\n .ant-select-selection-item {\n font-weight: 400;\n font-size: 13px;\n }\n`;\n\nexport const StyledTableWrapper = styled.div`\n width: 100%;\n overflow-x: auto;\n background-color: #fff;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);\n padding: 16px;\n`;\n\nconst StyledDropdown = styled(OrderActionsDropdown)`\n flex: 1;\n`;\n\nexport const StyledTable = styled.table`\n width: 100%;\n font-size: 14px;\n color: #333;\n border-spacing: 0 10px;\n\n th,\n td {\n padding: 12px 16px;\n background: #fff;\n }\n\n th {\n background: #f0f2f2;\n\n &:first-child {\n border-top-left-radius: 40px;\n border-bottom-left-radius: 40px;\n }\n\n &:last-child {\n border-top-right-radius: 40px;\n border-bottom-right-radius: 40px;\n }\n }\n\n // This affects ONLY top-level rows\n > tbody > tr {\n background: #fff;\n border-radius: 40px;\n box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1);\n }\n\n // Round the outer row's corners only on first/last td\n > tbody > tr > td:first-child {\n border-top-left-radius: 40px;\n border-bottom-left-radius: 40px;\n }\n\n > tbody > tr > td:last-child {\n border-top-right-radius: 40px;\n border-bottom-right-radius: 40px;\n }\n\n .scrollClass {\n overflow-x: auto;\n }\n\n .emptyTd {\n text-align: center;\n padding: 40px 0;\n color: #999;\n background: transparent;\n box-shadow: none;\n }\n\n td table {\n border-spacing: 0;\n width: 100%;\n }\n\n td table td {\n background: transparent;\n padding: 8px 12px;\n }\n`;\n\nconst ReturnRowWrapper = styled.div`\n display: flex;\n flex-direction: row;\n gap: 12px;\n padding: 0 12px;\n width: 100%;\n`;\n\nexport default CancelOrderTable;\n","import styled from 'styled-components';\nimport React, { useEffect, useState } from 'react';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport ReturnAction from './ReturnAction';\nimport ReturnReason from './ReturnReason';\nimport {\n useCancelOrderProducts,\n useCurrentAction,\n useCustomerInfo,\n useOrderId,\n useOrderStaticData,\n useProductDetails,\n} from '../../../store';\nimport OrderActionsDropdown from '../../Dropdown';\nimport { TextArea, useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse, CancelOrderProductsType } from '../../../types';\nimport { notification } from 'antd';\nimport CancelOrderTable from './CancelOrderTable';\n\ninterface IProps {\n callOrdersApi: any;\n callOrderStatusApi: any;\n callOrderAlertsApi: any;\n callOrderProductsApi: any;\n}\n\nfunction CancelOrder(props: IProps) {\n const [orderId] = useOrderId();\n const [, setCurrentAction] = useCurrentAction();\n const [orderProductDetails] = useProductDetails();\n const [\n cancelOrderProducts,\n setCancelOrderProducts,\n ] = useCancelOrderProducts();\n const [customerInfo] = useCustomerInfo();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n\n const [orderStaticData] = useOrderStaticData();\n\n const [cancelReason, setCancelReason] = useState<string | undefined>(\n undefined\n );\n\n const [cancelNotes, setCancelNotes] = useState<string>('');\n\n const cancelReasonOptions = orderStaticData?.return_cancellation_reasons?.map(\n (item: any) => {\n return {\n label: item?.reason,\n value: item?.reason,\n };\n }\n );\n\n const { fetchData: callCancelApi } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/cancel/?order_id=${orderId}`,\n method: 'POST',\n });\n\n useEffect(() => {\n const receivedProducts = orderProductDetails?.filter(\n (product: any) =>\n product?.status_value === 'received' &&\n product?.order_product_type?.type !== 'return'\n );\n const modifiedReceivedProducts =\n receivedProducts?.length > 0\n ? receivedProducts?.map((product: any) => {\n return {\n order_product_id: product?.id,\n action: '',\n return_action: '',\n return_reason: '',\n code: product?.code,\n description: product?.description,\n sku: product?.sku,\n product_type: product?.order_product_type?.type,\n };\n })\n : [];\n setCancelOrderProducts(modifiedReceivedProducts);\n }, [orderProductDetails]);\n\n const onClose = () => {\n setCurrentAction(undefined);\n setCancelOrderProducts([]);\n };\n\n const onSelectCancelReason = (value: string) => {\n setCancelReason(value);\n };\n\n const onChangeNotes = (event: any) => {\n setCancelNotes(event.target.value);\n };\n\n const onSubmitCancel = async () => {\n const productsPayload = cancelOrderProducts?.map(\n (product: CancelOrderProductsType) => {\n if (product?.action === 'deliver') {\n return {\n order_product_id: product?.order_product_id,\n action: product?.action,\n };\n }\n return {\n order_product_id: product?.order_product_id,\n action: product?.action,\n return_action: product?.return_action,\n return_reason: product?.return_reason,\n };\n }\n );\n\n // VALIDATIONS START\n\n const productsPayloadActions = productsPayload?.map(\n (product: CancelOrderProductsType) => {\n if (product?.action !== '') {\n return true;\n }\n return false;\n }\n );\n\n if (productsPayloadActions?.includes(false)) {\n notification.error({\n message: 'Error',\n description: `please fill product status field`,\n });\n return;\n }\n\n const productsPayloadValidate = productsPayload?.map(\n (product: CancelOrderProductsType) => {\n if (product?.action === 'return') {\n return product?.return_action !== '' && product?.return_reason !== '';\n }\n return true;\n }\n );\n\n if (productsPayloadValidate?.includes(false)) {\n notification.error({\n message: 'Error',\n description: `please fill all the mandatory fields`,\n });\n return;\n }\n\n // VALIDATIONS END\n\n const apiPayload = {\n cancelled_reason: cancelReason,\n cancelled_notes: cancelNotes,\n products: productsPayload,\n };\n\n if (orderId) {\n const response = (await callCancelApi({\n payload: apiPayload,\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n // call orders api to update status\n await props?.callOrderProductsApi();\n await props?.callOrderAlertsApi();\n await props?.callOrderStatusApi();\n await props?.callOrdersApi();\n }\n if (response?.code !== 200) {\n notification.error({\n message: 'Error',\n description: `${response.error}`,\n });\n setCurrentAction(undefined);\n }\n }\n };\n\n const showSubmitBtn = cancelReason !== undefined;\n\n return (\n <OrderActionModal\n headerTitle=\"Cancel Order\"\n showAdditionalInfo\n infoText={infoText}\n onCloseHeader={onClose}\n onSubmit={onSubmitCancel}\n submitBtnTitle=\"Save Details\"\n isSubmitDisabled={!showSubmitBtn}\n >\n <ContentContainer>\n <Top>\n <TopLeft>\n <OrderActionsDropdown\n required\n label=\"Cancellation Reason\"\n placeholder=\"Select Cancellation Reason\"\n options={cancelReasonOptions || []}\n onSelect={onSelectCancelReason}\n value={cancelReason}\n />\n <Wrapper>\n <ReturnAction />\n <ReturnReason />\n </Wrapper>\n </TopLeft>\n <TopRight>\n <Container>\n <div style={{ display: 'flex', flexDirection: 'row' }}>\n <Label>Cancellation Note</Label>\n </div>\n <TArea\n rows={5}\n onChange={onChangeNotes}\n value={cancelNotes}\n placeholder=\"Reason for Cancel Order\"\n />\n </Container>\n </TopRight>\n </Top>\n <Bottom>\n <CancelOrderTable />\n </Bottom>\n </ContentContainer>\n </OrderActionModal>\n );\n}\n\nconst TArea = styled(TextArea)`\n resize: none;\n`;\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n gap: 15px;\n width: 100%;\n > div {\n width: 50%;\n }\n`;\n\nconst TopLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 15px;\n width: 50%;\n`;\n\nconst TopRight = styled.div`\n width: 50%;\n`;\n\nconst Top = styled.div`\n width: 100%;\n border-radius: 16px;\n border: 1px solid #edebe8;\n background: #f8fafc;\n display: flex;\n padding: 15px;\n align-items: flex-start;\n gap: 30px;\n align-self: stretch;\n`;\n\nconst Bottom = styled.div``;\n\nconst ContentContainer = styled.div`\n display: flex;\n padding: 15px;\n align-items: flex-start;\n flex-direction: column;\n width: 100%;\n`;\n\nexport default CancelOrder;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\nimport {\n useErrorConfirmOrder,\n useOrderDetailsConfirmOrder,\n} from '../../../../store';\n\nfunction EmailAddress() {\n const emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i;\n\n const [orderDetails, setOrderDetails] = useOrderDetailsConfirmOrder();\n\n const orderRecipient = orderDetails?.order_recipient;\n const [errors, setErrors] = useErrorConfirmOrder();\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n validateInput(val);\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_email: val }\n : { ...orderRecipient, contact_email: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n };\n\n const validateInput = (value: string) => {\n const isValid = emailRegex.test(value);\n setErrors(prev => ({\n ...prev,\n emailError: isValid ? '' : 'Please enter a valid Email Address',\n }));\n };\n\n return (\n <Container>\n <Label>Email Address</Label>\n <Input\n style={{ borderRadius: '15px' }}\n type=\"text\"\n value={orderRecipient?.contact_email || ''}\n onChange={onChange}\n />\n {errors.emailError && <ErrorText>{errors.emailError}</ErrorText>}\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\nexport default EmailAddress;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\nimport {\n useErrorConfirmOrder,\n useOrderDetailsConfirmOrder,\n} from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\n\nfunction ContactPhone() {\n const [orderDetails, setOrderDetails] = useOrderDetailsConfirmOrder();\n const orderRecipient = orderDetails?.order_recipient;\n const [errors, setErrors] = useErrorConfirmOrder();\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_home: val }\n : { ...orderRecipient, contact_home: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n\n if (e.target.value) {\n if (e.target.value.length < 10) {\n setErrors(prevErrors => ({\n ...prevErrors,\n homeContactError: 'Phone number must be at least 10 digits.',\n }));\n } else if (e.target.value.length > 11) {\n setErrors(prevErrors => ({\n ...prevErrors,\n homeContactError: 'Phone number must not exceed 10 digits.',\n }));\n } else {\n setErrors(prevErrors => ({\n ...prevErrors,\n homeContactError: '',\n }));\n }\n } else {\n setErrors(prevErrors => ({\n ...prevErrors,\n homeContactError: '',\n }));\n }\n };\n\n return (\n <Container>\n <Label>Contact Phone</Label>\n <Input\n name=\"contact-home\"\n type=\"text\"\n placeholder=\"Home Number\"\n onKeyDown={handleKeyDown}\n style={{ borderRadius: '15px' }}\n value={orderRecipient?.contact_home || ''}\n onChange={onChange}\n />\n {errors.homeContactError && (\n <ErrorText>{errors.homeContactError}</ErrorText>\n )}\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactPhone;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\nimport {\n useErrorConfirmOrder,\n useOrderDetailsConfirmOrder,\n} from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\n\nfunction ContactWork() {\n const [orderDetails, setOrderDetails] = useOrderDetailsConfirmOrder();\n const orderRecipient = orderDetails?.order_recipient;\n const [errors, setErrors] = useErrorConfirmOrder();\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_work: val }\n : { ...orderRecipient, contact_work: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n if (e.target.value) {\n if (e.target.value.length < 10) {\n setErrors(prevErrors => ({\n ...prevErrors,\n workContactError: 'Phone number must be at least 10 digits.',\n }));\n } else if (e.target.value.length > 11) {\n setErrors(prevErrors => ({\n ...prevErrors,\n workContactError: 'Phone number must not exceed 10 digits.',\n }));\n } else {\n setErrors(prevErrors => ({\n ...prevErrors,\n workContactError: '',\n }));\n }\n } else {\n setErrors(prevErrors => ({\n ...prevErrors,\n workContactError: '',\n }));\n }\n };\n return (\n <Container>\n <Label>Contact Work</Label>\n <Input\n name=\"contact-work\"\n type=\"text\"\n placeholder=\"Work Number\"\n onKeyDown={handleKeyDown}\n style={{ borderRadius: '15px' }}\n value={orderRecipient?.contact_work || ''}\n onChange={onChange}\n />\n {errors.workContactError && (\n <ErrorText>{errors.workContactError}</ErrorText>\n )}\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactWork;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\nimport {\n useErrorConfirmOrder,\n useOrderDetailsConfirmOrder,\n} from '../../../../store';\nimport { handleKeyDown } from '../../../../utils';\n\nfunction ContactMobile() {\n const [orderDetails, setOrderDetails] = useOrderDetailsConfirmOrder();\n const orderRecipient = orderDetails?.order_recipient;\n const [errors, setErrors] = useErrorConfirmOrder();\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n const updatedOrderRecipient = {\n ...(orderRecipient === null\n ? { contact_mobile: val }\n : { ...orderRecipient, contact_mobile: val }),\n };\n setOrderDetails(prev => {\n return {\n ...prev,\n order_recipient: updatedOrderRecipient,\n };\n });\n\n if (e.target.value) {\n if (e.target.value.length < 10) {\n setErrors(prevErrors => ({\n ...prevErrors,\n mobileError: 'Phone number must be at least 10 digits.',\n }));\n } else if (e.target.value.length > 11) {\n setErrors(prevErrors => ({\n ...prevErrors,\n mobileError: 'Phone number must not exceed 10 digits.',\n }));\n } else {\n setErrors(prevErrors => ({\n ...prevErrors,\n mobileError: '',\n }));\n }\n } else {\n setErrors(prevErrors => ({\n ...prevErrors,\n mobileError: '',\n }));\n }\n };\n return (\n <Container>\n <Label>Contact Mobile</Label>\n <Input\n name=\"contact-work\"\n type=\"text\"\n placeholder=\"Mobile Number\"\n style={{ borderRadius: '15px' }}\n value={orderRecipient?.contact_mobile || ''}\n onKeyDown={handleKeyDown}\n onChange={onChange}\n />\n {errors.mobileError && <ErrorText>{errors.mobileError}</ErrorText>}\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nexport default ContactMobile;\n","import React, { useEffect, useState } from 'react';\nimport OrderActionsDropdown from '../../../Dropdown';\nimport { useOrderStaticData } from '../../../../store';\nimport { capitalize } from '../../../../utils';\n\nfunction ContactTypeDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [contactTypeOptions, setContactTypeOptions] = useState<any[]>([]);\n\n const onSelect = () => {};\n const onSearch = () => {};\n\n useEffect(() => {\n if (orderStaticData) {\n const options = orderStaticData?.order_contact_type?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option.id,\n })\n );\n setContactTypeOptions(options);\n }\n }, [orderStaticData]);\n\n return (\n <OrderActionsDropdown\n label=\"Contact Type\"\n placeholder=\"Select Contact Type\"\n options={contactTypeOptions}\n onSelect={onSelect}\n onSearch={onSearch}\n disabled={false}\n className=\"contact-type-dropdown\"\n />\n );\n}\n\nexport default ContactTypeDropdown;\n","import React, { useEffect, useState } from 'react';\nimport { useOrderStaticData, useSelectionAction } from '../../../../store';\nimport { capitalize } from '../../../../utils';\nimport { Select } from 'antd';\nimport { Label } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\n\nfunction ActionDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [actionTypeOptions, setActionTypeOptions] = useState<any>([]);\n const [selectedAction, setSelectedAction] = useSelectionAction();\n\n useEffect(() => {\n if (orderStaticData) {\n const options = orderStaticData?.order_contact_action_type?.map(\n (option: any) => ({\n label: capitalize(option?.type?.replaceAll('_', ' ')), // Display text\n value: option?.type,\n })\n );\n setActionTypeOptions(options);\n\n if (options?.length > 0 && !selectedAction) {\n setSelectedAction(options[0]?.value);\n }\n }\n }, [orderStaticData]);\n const onSelect = (value: any) => {\n setSelectedAction(value);\n };\n\n return (\n <Container>\n <Label label=\"Action\" />\n <Select\n style={{ minWidth: '260px' }}\n placeholder=\"Select Action\"\n options={actionTypeOptions}\n value={selectedAction || undefined}\n onChange={onSelect}\n className=\"action-dropdown\"\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n .ant-select-selector {\n border-radius: 25px;\n }\n`;\n\nexport default ActionDropdown;\n","import { DatePicker } from 'antd';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n useNotificationConfirmedDate,\n useOrderDetails,\n useStatusDetails,\n} from '../../../../store';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { isValid } from 'date-fns';\nimport { useClientPortal } from '../../../../../store';\n\nfunction DeliveryDate() {\n const [dateOrderDetails] = useOrderDetails();\n const [orderStatus] = useStatusDetails();\n const [isClientPortal] = useClientPortal();\n const [confirmedDate, setConfirmedDate] = useNotificationConfirmedDate();\n\n const actionDate = dateOrderDetails?.action_date\n ? dayjs(dateOrderDetails.action_date).format('YYYY-MM-DD')\n : null;\n\n useEffect(() => {\n if (actionDate) {\n setConfirmedDate(_prev => ({\n previousDate: actionDate,\n currentDate: actionDate,\n }));\n } else {\n setConfirmedDate({\n previousDate: null,\n currentDate: null,\n });\n }\n }, [actionDate, setConfirmedDate]);\n\n const handleDateChange = (date: Dayjs | null) => {\n if (date && isValid(date.toDate())) {\n const formattedDate = dayjs(date).format('YYYY-MM-DD');\n\n setConfirmedDate(prev => ({\n previousDate: prev?.currentDate || null,\n currentDate: formattedDate,\n }));\n }\n };\n\n const order = orderStatus?.[0] || {};\n\n const otherStatuses = [\n order?.released,\n order?.received === true || order?.received === 'True',\n order?.scheduled,\n order?.confirmed,\n order?.delivered,\n order?.completed,\n ].filter(val => val !== undefined);\n\n const allOthersTrue =\n otherStatuses?.length > 0 && otherStatuses?.every(s => s === true);\n\n const isDisabled = isClientPortal\n ? true\n : allOthersTrue && order?.routed === true;\n\n return (\n <Container>\n <Label>Delivery Date</Label>\n <DatePicker\n onChange={handleDateChange}\n format=\"YYYY-MM-DD\"\n value={\n confirmedDate?.currentDate\n ? dayjs(confirmedDate.currentDate)\n : actionDate\n ? dayjs(actionDate)\n : null\n }\n style={{ borderRadius: '15px', minWidth: '60px' }}\n disabled={isDisabled}\n // disabledDate={current =>\n // current && current.isBefore(dayjs().startOf('day'))\n // }\n allowClear={false}\n />\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n white-space: nowrap;\n`;\n\nexport default DeliveryDate;\n","import React from 'react';\nimport OrderActionsDropdown from '../../../Dropdown';\nimport {\n useOrderDetailsConfirmOrder,\n useOrderStaticData,\n} from '../../../../store';\nimport { capitalize } from '../../../../utils';\n\nfunction convertTo12HourFormat(time24: any) {\n const [hours, minutes] = time24?.split(':')?.map(Number);\n const period = hours >= 12 ? 'PM' : 'AM';\n const hours12 = hours % 12 || 12; // Convert to 12-hour format\n return `${hours12}:${minutes?.toString()?.padStart(2, '0')} ${period}`;\n}\n\nfunction TimedServiceDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [orderData, setOrderData] = useOrderDetailsConfirmOrder();\n const timesServiceId = orderData?.order_services_detail?.timed_service_id;\n\n const timedServicesOptions = orderStaticData?.order_timed_services?.map(\n (option: any) => {\n const startTime = convertTo12HourFormat(option?.start_time);\n const endTime = convertTo12HourFormat(option?.end_time);\n const label = `${capitalize(\n option?.type?.replaceAll('_', ' ')\n )} (${startTime} - ${endTime})`;\n return {\n label: label,\n value: option?.id,\n };\n }\n );\n\n const onSelect = (event: any) => {\n const updatedServices = {\n ...orderData?.order_services_detail!,\n timed_service_id: +event,\n };\n const newData = { ...orderData, order_services_detail: updatedServices };\n setOrderData(newData);\n };\n return (\n <OrderActionsDropdown\n label=\"Timed Service\"\n placeholder=\"Select Timed Service\"\n options={timedServicesOptions || []}\n value={timedServicesOptions?.filter(\n (f: any) => f.value === timesServiceId\n )}\n onSelect={onSelect}\n />\n );\n}\n\nexport default TimedServiceDropdown;\n","import React from 'react';\nimport styled from 'styled-components';\nimport EmailAddress from './EmailAddress';\nimport ContactPhone from './ContactPhone';\nimport ContactWork from './ContactWork';\nimport ContactMobile from './ContactMobile';\nimport ContactTypeDropdown from './ContactTypeDropdown';\nimport ActionDropdown from './ActionDropdown';\nimport DeliveryDate from './DeliveryDate';\nimport TimedServiceDropdown from './TimedServiceDropdown';\nimport { useOrderDetailsConfirmOrder } from '../../../../store';\n\nfunction CustomerInformation() {\n const [orderDetails] = useOrderDetailsConfirmOrder();\n\n return (\n <Container>\n <Title>Address</Title>\n <AddressField>{orderDetails?.order_recipient?.address}</AddressField>\n <Wrapper>\n <EmailAddress />\n <ContactPhone />\n </Wrapper>\n <Wrapper>\n <ContactWork />\n <ContactMobile />\n </Wrapper>\n <Wrapper>\n <ContactTypeDropdown />\n <ActionDropdown />\n </Wrapper>\n <Wrapper>\n <DeliveryDate />\n <TimedServiceDropdown />\n </Wrapper>\n </Container>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n gap: 15px;\n width: 100%;\n .contact-type-dropdown,\n .action-dropdown {\n flex: 1;\n }\n`;\n\nconst AddressField = styled.p`\n color: #3a3630;\n font-family: 'Open Sans';\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n padding: 0;\n margin: 0;\n`;\n\nconst Title = styled.span`\n color: #3a3630;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n`;\n\nconst Container = styled.div`\n padding: 15px 12px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n display: flex;\n flex-direction: column;\n gap: 15px;\n`;\n\nexport default CustomerInformation;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useProductDetails } from '../../../../store';\n\nimport { Empty, Skeleton } from 'antd';\nimport { useLoading } from '../../../../../order-daily-overview/store/store';\nimport {\n EmptyDataContainer,\n StyledTable,\n StyledTableWrapper,\n} from './ReminderStyles';\n\nfunction ProductTable() {\n const [orderProductDetails] = useProductDetails();\n const [loading] = useLoading();\n\n if (!orderProductDetails) {\n return null;\n }\n\n return (\n <Container>\n <Title>Products ({orderProductDetails?.length})</Title>\n <StyledTableWrapper>\n <StyledTable className=\"scrollClass\">\n <thead>\n <tr>\n <th>Action</th>\n <th>Code</th>\n <th>Description</th>\n <th>Parts</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={6}>\n <Skeleton active />\n </td>\n <td colSpan={6}></td>\n </tr>\n ) : orderProductDetails?.length === 0 ? (\n <tr>\n <td className=\"emptyTd\" colSpan={7}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n orderProductDetails?.map((order: any) => (\n <tr key={order.id}>\n <td>{order?.order_product_type?.type}</td>{' '}\n <td>{order?.code}</td>\n <td>{order?.description}</td>\n <td>{order?.sku}</td>\n </tr>\n ))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </Container>\n );\n}\n\nconst Title = styled.h2`\n color: #3a3630;\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n text-transform: uppercase;\n padding: 0;\n margin: 0;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n > div {\n min-height: 165px;\n }\n`;\n\nexport default ProductTable;\n","import {\n formatUtcToLocal,\n useApiHook,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { useOrderId } from '../../../../store';\nimport {\n EmptyDataContainer,\n StyledTable,\n StyledTableWrapper,\n} from './ReminderStyles';\nimport CustomScrollBar from '../../../../../../common/scrollbar';\nimport { Empty, Skeleton } from 'antd';\n\nfunction NotesTable() {\n const [moduleIds, setModuleIds] = useState<{\n id?: string;\n child_id?: string;\n } | null>(null);\n const [orderId] = useOrderId();\n const [notes, setNotes] = useState<any>();\n const [loading, setNoteLoadingStore] = useState(false);\n\n // Fetch module IDs\n const { data: fetchedData, loading: apiLoading } = useApiHook<{ data: any }>({\n endpoint: 'audit_logs/modules/',\n method: 'GET',\n pagination: { page: 1, per_page: 100 },\n showLoader: false,\n });\n useEffect(() => {\n if (!apiLoading && fetchedData?.data) {\n const modules = fetchedData?.data\n ?.filter((item: any) => item?.name === 'ORDER')\n ?.map((item: any) => {\n const orderProductId = item?.static_child_mappings.find(\n (i: any) => i?.child_module?.name === 'ORDER_PRODUCT'\n )?.child_module?.id;\n\n return {\n id: item?.id,\n child_id: orderProductId || null,\n };\n });\n setModuleIds(modules[0] || null);\n }\n }, [apiLoading, fetchedData]);\n\n // Fetch Notes Data\n const {\n data: NotesData,\n loading: NotesLoading,\n setShouldPerformAction,\n } = useApiHook<{ data: any }>({\n endpoint: `audit_logs/?module_id=${moduleIds?.id}&module_object_id=${orderId}`,\n method: 'GET',\n performAction: false,\n });\n useEffect(() => {\n setNoteLoadingStore(true);\n if (moduleIds) {\n setShouldPerformAction(true);\n }\n if (!NotesLoading && NotesData?.data) {\n const OrdersData = NotesData?.data[0]?.ORDER || [];\n const OrderNotesData = NotesData?.data[1]?.['ORDER_PRODUCT'] || [];\n const allNotes = [...OrdersData, ...OrderNotesData];\n setNotes(allNotes);\n setNoteLoadingStore(NotesLoading);\n }\n }, [moduleIds, NotesLoading]);\n\n if (notes?.length === 0) {\n return null;\n }\n\n return (\n <Container>\n <Title>Notes ({notes?.length})</Title>\n <StyledTableWrapper>\n <CustomScrollBar>\n <StyledTable className=\"scrollClass\">\n <thead>\n <tr>\n <th>Created</th>\n <th>Notes</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={6}>\n <Skeleton active />\n </td>\n <td colSpan={6}></td>\n </tr>\n ) : notes?.length === 0 ? (\n <tr>\n <td className=\"emptyTd\" colSpan={7}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n notes?.map((order: any) => (\n <tr key={order.id}>\n <td>\n <div\n style={{\n fontWeight: 'bold',\n textTransform: 'capitalize',\n }}\n >\n {order?.created_by}\n </div>\n <div>\n {/* {format(\n new Date(order?.created_at),\n \"dd/MM/yyyy '@' HH:mm\"\n )} */}\n {`${formatUtcToLocal(order?.created_at).date} @ ${\n formatUtcToLocal(order?.created_at).time\n }`}\n </div>\n </td>\n <td\n dangerouslySetInnerHTML={{ __html: order?.description }}\n ></td>\n </tr>\n ))\n )}\n </tbody>\n </StyledTable>\n </CustomScrollBar>\n </StyledTableWrapper>\n </Container>\n );\n}\n\nconst Title = styled.h2`\n color: #3a3630;\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n text-transform: uppercase;\n padding: 0;\n margin: 0;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n > div {\n min-height: 350px;\n }\n`;\n\nexport default NotesTable;\n","import styled from 'styled-components';\nimport React from 'react';\nimport { TextArea } from '@bjsdistribution/dms-component-library';\n\nfunction ConfirmationNotes() {\n return (\n <Container>\n <Label>Notes</Label>\n <TextArea rows={5} placeholder=\"Enter Notes\" />\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nexport default ConfirmationNotes;\n","import styled from 'styled-components';\nimport React from 'react';\nimport { TextArea } from '@bjsdistribution/dms-component-library';\n\nfunction DeliveryInstructions() {\n return (\n <Container>\n <Label>Delivery Instructions</Label>\n <TextArea rows={5} placeholder=\"Enter Delivery Instructions\" />\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nexport default DeliveryInstructions;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\n\nfunction ContactWith() {\n return (\n <Container>\n <Label>Contact With</Label>\n <Input style={{ borderRadius: '15px' }} />\n </Container>\n );\n}\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n`;\n\nexport default ContactWith;\n","import styled from 'styled-components';\nimport React from 'react';\nimport ConfirmationNotes from './ConfirmationNotes';\nimport DeliveryInstructions from './DeliveryInstructions';\nimport ContactWith from '../customer-info/ContactWith';\nimport { useOrderDetailsConfirmOrder } from '../../../../store';\n\nfunction SlotAndInstructions() {\n const [orderDetails] = useOrderDetailsConfirmOrder();\n return (\n <Container>\n <Slot>\n <Title>Slot</Title>\n <Value>{orderDetails?.order_routes?.slot}</Value>\n </Slot>\n <ContactWith />\n <DeliveryInstructions />\n <ConfirmationNotes />\n </Container>\n );\n}\n\nconst Value = styled.span`\n color: #3a3630;\n font-family: 'Lato', 'Open Sans';\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n`;\n\nconst Slot = styled.div`\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\n\nconst Title = styled.span`\n color: #3a3630;\n font-family: 'Lato', 'Open Sans';\n font-size: 13px;\n font-style: normal;\n font-weight: 700;\n`;\n\nconst Container = styled.div`\n padding: 15px 12px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n display: flex;\n flex-direction: column;\n gap: 15px;\n`;\n\nexport default SlotAndInstructions;\n","import { Checkbox } from 'antd';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetailsConfirmOrder } from '../../../../store';\n\ninterface IProps {\n sendCommsState: any;\n setSendCommsState: any;\n}\n\nconst SendComms = (props: IProps) => {\n const [orderDetailsConfirmOrder] = useOrderDetailsConfirmOrder();\n\n const onChange = (e: any, type: string) => {\n if (type === 'email') {\n const updatedData = {\n sms: props?.sendCommsState?.sms,\n email: e.target.checked,\n };\n props?.setSendCommsState(updatedData);\n } else {\n const updatedData = {\n sms: e.target.checked,\n email: props?.sendCommsState?.email,\n };\n props?.setSendCommsState(updatedData);\n }\n };\n\n const contactHome = orderDetailsConfirmOrder?.order_recipient?.contact_home;\n const contactMobile =\n orderDetailsConfirmOrder?.order_recipient?.contact_mobile;\n const contactWork = orderDetailsConfirmOrder?.order_recipient?.contact_work;\n const contactEmail = orderDetailsConfirmOrder?.order_recipient?.contact_email;\n\n const showSms =\n (contactHome?.length !== 0 && contactHome != null) ||\n (contactMobile?.length !== 0 && contactMobile != null) ||\n (contactWork?.length !== 0 && contactWork != null);\n\n const showEmail = contactEmail?.length !== 0 && contactEmail != null;\n\n return (\n <SendCommsMainContainer>\n {showEmail && (\n <div className=\"send-comms-container\">\n <span className=\"label\">Send Email</span>\n <Checkbox\n checked={props?.sendCommsState?.email}\n onChange={(e: any) => onChange(e, 'email')}\n />\n </div>\n )}\n {showSms && (\n <div className=\"send-comms-container\">\n <span className=\"label\">Send SMS</span>\n <Checkbox\n checked={props?.sendCommsState?.sms}\n onChange={(e: any) => onChange(e, 'sms')}\n />\n </div>\n )}\n </SendCommsMainContainer>\n );\n};\n\nconst SendCommsMainContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 15px;\n\n .send-comms-container {\n display: flex;\n gap: 5px;\n align-items: center;\n .label {\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n font-family: 'Lato', sans-serif;\n line-height: 20px;\n }\n }\n`;\n\nexport default React.memo(SendComms);\n","import React, { useEffect, useState } from 'react';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport styled from 'styled-components';\nimport CustomerInformation from './customer-info';\nimport ProductTable from './tables/ProductTable';\nimport NotesTable from './tables/NotesTable';\nimport SlotAndInstructions from './slot-and-instructions';\nimport { Alert, useAxios } from '@bjsdistribution/dms-component-library';\nimport { notification } from 'antd';\nimport {\n useCurrentAction,\n useCustomerInfo,\n useErrorConfirmOrder,\n useNotificationConfirmedDate,\n useOrderDetails,\n useOrderDetailsConfirmOrder,\n useOrderId,\n usePrevOrderDetails,\n useSelectionAction,\n} from '../../../store';\nimport { useConfirmOrderDate } from '../../store';\nimport { ApiResponse } from '../../../types';\nimport { compareOrderDetailsStates, filterObject } from '../../../utils';\nimport { format } from 'date-fns';\nimport SendComms from './send-comms/SendComms';\n// import { useClientPortal } from '../../../../store';\n\ninterface IProps {\n callOrdersApi: any;\n callOrderStatusApi: any;\n callOrderAlertsApi: any;\n}\n\nfunction ConfirmOrder(props: IProps) {\n // const [isClientPortal] = useClientPortal();\n const [, setCurrentAction] = useCurrentAction();\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails, setPrevOrderDetails] = usePrevOrderDetails();\n const [\n orderDetailsConfirmOrder,\n setOrderDetailsConfirmOrder,\n ] = useOrderDetailsConfirmOrder();\n const [customerInfo] = useCustomerInfo();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n const [deliveryDate, setDeliveryDate] = useConfirmOrderDate();\n const [orderId] = useOrderId();\n const [errorState] = useErrorConfirmOrder();\n const [confirmedDate] = useNotificationConfirmedDate();\n const [selectedAction] = useSelectionAction();\n const [confirmOrderSendComms, setConfirmOrderSendComms] = useState({\n sms: true,\n email: true,\n });\n const contactHome = orderDetailsConfirmOrder?.order_recipient?.contact_home;\n const contactMobile =\n orderDetailsConfirmOrder?.order_recipient?.contact_mobile;\n const contactWork = orderDetailsConfirmOrder?.order_recipient?.contact_work;\n\n // update Order API\n const { fetchData: callUpdateOrderAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/update/`,\n method: 'PUT',\n });\n\n // send notifications\n const { fetchData: notificationCall } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/send-comms/?notification_type=Confirm - Attempted&send_sms=${confirmOrderSendComms?.sms}&send_email=${confirmOrderSendComms?.email}`,\n method: 'POST',\n });\n\n const { fetchData: declineDate } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/decline-date/?date=${confirmedDate?.previousDate}`,\n method: 'POST',\n });\n\n const { fetchData: confirmDeliveryDate } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/confirm-date/?date=${confirmedDate?.currentDate}&send_sms=${confirmOrderSendComms?.sms}&send_email=${confirmOrderSendComms?.email}`,\n method: 'POST',\n });\n\n const { fetchData: sendComs } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/send-comms/?notification_type=Precall&send_sms=${confirmOrderSendComms?.sms}&send_email=${confirmOrderSendComms?.email}`,\n method: 'POST',\n });\n\n const { fetchData: noResponseApi } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/no-response-date/?date=${confirmedDate?.currentDate}&send_sms=${confirmOrderSendComms?.sms}&send_email=${confirmOrderSendComms?.email}`,\n method: 'POST',\n });\n\n const { fetchData: proposeDate } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/propose-date/?date=${confirmedDate?.currentDate}&send_sms=${confirmOrderSendComms?.sms}&send_email=${confirmOrderSendComms?.email}`,\n method: 'POST',\n });\n\n const onClose = () => {\n setCurrentAction(undefined);\n };\n\n useEffect(() => {\n const clone = JSON.parse(JSON.stringify(orderDetails));\n setOrderDetailsConfirmOrder(clone);\n return () => {\n setOrderDetailsConfirmOrder(clone);\n };\n }, []);\n\n const executeActions = async () => {\n switch (selectedAction) {\n case 'decline_and_propose_new_date':\n // Decline → Propose\n if (confirmedDate?.previousDate !== null) {\n await declineDate();\n }\n await proposeDate();\n break;\n\n case 'decline_and_confirm_new_date':\n // Decline → Confirm\n if (confirmedDate?.previousDate !== null) {\n await declineDate();\n }\n await confirmDeliveryDate();\n break;\n\n case 'declined_proposed_date(outstanding)':\n // Only Decline\n if (confirmedDate?.previousDate !== null) {\n await declineDate();\n }\n break;\n\n case 'no_response_propose_new_date':\n // Decline (always previous date) → No Response Propose\n if (confirmedDate?.previousDate !== null) {\n await declineDate();\n }\n await noResponseApi();\n break;\n\n case 'confirmed':\n // Only Confirm\n await confirmDeliveryDate();\n break;\n\n default:\n break;\n }\n };\n\n const executeSendComs = async () => {\n switch (selectedAction) {\n case 'left_message':\n case 'contact_made':\n case 'no_contact':\n // Only send comms (Update Order already handled in confirmOrder)\n notificationCall();\n break;\n\n case 'precall':\n // Decline → Send Comms\n if (confirmedDate?.previousDate !== null) {\n await declineDate();\n }\n await sendComs();\n break;\n\n default:\n break;\n }\n };\n\n const confirmOrder = async () => {\n if (\n selectedAction === 'left_message' ||\n selectedAction === 'contact_made' ||\n selectedAction === 'no_contact' ||\n selectedAction === 'precall'\n ) {\n if (\n contactHome?.length === 0 &&\n contactMobile?.length === 0 &&\n contactWork?.length === 0\n ) {\n notification.info({\n message: 'Info',\n description: 'Please add contact information',\n });\n return;\n }\n if (\n confirmedDate?.previousDate === null &&\n confirmedDate?.currentDate === null\n ) {\n notification.info({\n message: 'Info',\n description: 'Please add delivery date',\n });\n return;\n }\n }\n\n const keysToRemovefromOrders = [\n 'order_locked',\n 'order_communications',\n 'updated_at',\n 'updated_by',\n 'stock_alias',\n 'order_delivery_declined_dates',\n 'order_eta_updates',\n 'order_status',\n 'tomtom_status',\n 'refused_service',\n 'order_type',\n 'order_failures',\n 'order_on_hold',\n 'order_cancellations',\n 'order_routes',\n 'order_services',\n 'labels',\n ];\n\n const filteredOrderDetails = filterObject(\n orderDetailsConfirmOrder,\n keysToRemovefromOrders\n );\n\n const filteredPrevOrderDetails = filterObject(\n prevOrderDetails,\n keysToRemovefromOrders\n );\n\n const payload = compareOrderDetailsStates(\n filteredPrevOrderDetails,\n filteredOrderDetails\n );\n\n const restrictedActions = [\n 'decline_and_confirm_new_date',\n 'decline_and_propose_new_date',\n 'declined_proposed_date(outstanding)',\n 'confirmed',\n 'no_response_propose_new_date',\n ];\n\n const isRestrictedAction = restrictedActions.includes(selectedAction);\n\n const updatedPayload: any = {\n ...payload,\n action_date: confirmedDate?.currentDate,\n };\n\n // ✅ Remove action_date for restricted actions\n if (isRestrictedAction) {\n delete updatedPayload.action_date;\n }\n\n const keys = Object.keys(updatedPayload);\n\n const notUpdateOrder = keys.length === 1 && keys.includes('id');\n\n const shouldUpdateOrder = !notUpdateOrder;\n\n if (shouldUpdateOrder) {\n const response = (await callUpdateOrderAPI({\n payload: [updatedPayload],\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n\n if (response?.data?.length > 0) {\n const updatedOrder = response?.data[0];\n setOrderDetails(updatedOrder);\n setPrevOrderDetails(updatedOrder);\n } else {\n setOrderDetails(prevOrderDetails);\n }\n }\n\n // ✅ Execute action flow\n await executeActions();\n\n // ✅ Execute comms flow\n await executeSendComs();\n\n if (orderId && deliveryDate) {\n const formattedDate = format(new Date(deliveryDate), 'yyyy-MM-dd');\n setDeliveryDate(formattedDate);\n }\n\n setTimeout(() => {\n props?.callOrderStatusApi();\n }, 1000);\n\n await props?.callOrderAlertsApi();\n await props?.callOrdersApi();\n };\n\n const errorFound = () => {\n const isError =\n errorState.emailError.length > 0 ||\n errorState.homeContactError.length > 0 ||\n errorState.workContactError.length > 0 ||\n errorState.mobileError.length > 0;\n return isError;\n };\n\n const disabledButton = confirmedDate?.currentDate === null;\n\n return (\n <OrderActionModal\n headerTitle=\"Confirm Order\"\n minWidth=\"60vw\"\n showAdditionalInfo\n infoText={infoText}\n onCloseHeader={onClose}\n onSubmit={confirmOrder}\n submitBtnTitle=\"Save Details\"\n isSubmitDisabled={errorFound() && disabledButton}\n footerActions={\n <SendComms\n sendCommsState={confirmOrderSendComms}\n setSendCommsState={setConfirmOrderSendComms}\n />\n }\n >\n <ContentContainer>\n <Alert\n description=\"\"\n onClose={() => {}}\n type=\"info\"\n title=\"There is Orders with identical postcodes that are yet to be delivered.View Orders\"\n showOkButton={false}\n showCloseIcon={false}\n />\n <Wrapper>\n <CustomerInformation />\n <SlotAndInstructions />\n </Wrapper>\n <ProductTable />\n <NotesTable />\n </ContentContainer>\n </OrderActionModal>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n gap: 10px;\n`;\n\nconst ContentContainer = styled.div`\n /* display: flex; */\n padding: 15px 12px;\n flex: 1 0 0;\n border-radius: 15px;\n background: white;\n display: flex;\n flex-direction: column;\n gap: 15px;\n overflow: auto;\n min-height: 500px;\n overflow-x: hidden;\n max-height: 500px;\n scrollbar-width: thin;\n width: 100%;\n`;\n\nexport default ConfirmOrder;\n","import { Input, TextArea } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\n\nexport const IconContainer = styled.div`\n cursor: pointer;\n`;\n\nexport const StyledInput = styled(Input)`\n border-radius: 66px;\n min-width: 700px;\n`;\n\nexport const StyledTextArea = styled(TextArea)`\n display: flex;\n padding: 12px;\n align-items: flex-start;\n gap: 4px;\n flex: 1 0 0;\n align-self: stretch;\n border-radius: 10px;\n border: 1px solid #e0e2e7;\n background: #fff;\n resize: none;\n min-height: 200px;\n`;\n\nexport const StyledTextAreas = styled(TextArea)`\n display: flex;\n padding: 12px;\n align-items: flex-start;\n gap: 4px;\n flex: 1 0 0;\n align-self: stretch;\n border-radius: 10px;\n border: 1px solid #e0e2e7;\n background: #fff;\n resize: none;\n min-height: 50px;\n`;\n\nexport const SplitLayout = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 10px;\n`;\n\nexport const SplitText = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 10px;\n flex-direction: column;\n margin-bottom: 4px;\n`;\n\nexport const Row = styled.div`\n flex: 1 0 0;\n display: grid;\n gap: 5px;\n justify-content: center;\n`;\nexport const HoldRow = styled.div`\n flex: 1 0 0;\n display: grid;\n gap: 5px;\n justify-content: center;\n /* margin-bottom: 25px; */\n`;\n\nexport const Label = styled.label`\n color: #758588;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n`;\n\nexport const ContentContainer = styled.div`\n display: flex;\n padding: 12px 12px;\n margin: 5px 14px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n`;\nexport const HoldContentContainer = styled.div`\n display: flex;\n padding: 20px 20px;\n margin: 5px 14px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n border-radius: 15px;\n`;\n\nexport const Container = styled.div`\n border-radius: 15px;\n border: 1px solid #e0e2e7;\n background: #fff;\n display: flex;\n padding: 15px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n width: 450px;\n`;\n\nexport const StaticText = styled.div`\n color: #3a3630;\n font-family: 'lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 18px; /* 128.571% */\n flex: 1 0 0;\n`;\n\nexport const ImageCircle = styled.div`\n display: flex;\n padding: 10px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 50px;\n background: #f2f4f6;\n`;\n\nexport const ImageRow = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 15px;\n align-self: stretch;\n`;\nexport const HoldFooterText = styled.div`\n color: #aea9a1;\n font-family: 'lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n margin-top: 32px;\n margin-bottom: 22px;\n`;\nexport const FooterText = styled.div`\n color: #aea9a1;\n font-family: 'lato', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n\nexport const HoldDatePickerWrap = styled.div`\n position: relative;\n border-radius: 66px;\n border: 1px solid #e0e2e7;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n\n input[type='text'] {\n border-radius: 20px;\n background: #fff;\n border: none;\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n line-height: 18px;\n padding: 10px 0;\n padding-left: 33px;\n min-width: 21.5vw;\n &:focus-visible {\n outline: none;\n }\n }\n svg {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n .react-datepicker-wrapper {\n background-color: white;\n border-radius: 66px;\n }\n .ant-picker-outlined {\n border-style: none;\n border-radius: 66px;\n outline: none;\n width: 346px;\n }\n`;\n\nexport const DatePickerWrap = styled.div`\n position: relative;\n\n border-radius: 66px;\n border: 1px solid #e0e2e7;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n\n input[type='text'] {\n border-radius: 20px;\n background: #fff;\n border: none;\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n line-height: 18px;\n padding: 10px 0;\n padding-left: 33px;\n min-width: 18vw;\n &:focus-visible {\n outline: none;\n }\n }\n svg {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n .react-datepicker-wrapper {\n background-color: white;\n border-radius: 66px;\n }\n .ant-picker-outlined {\n border-style: none;\n border-radius: 66px;\n outline: none;\n width: 100%;\n }\n`;\n\nexport const DeleteCircleIcon = styled.div`\n border-radius: 20px;\n border: 1px solid #e2e0db;\n background: #fff;\n display: flex;\n padding: 6px;\n justify-content: center;\n align-items: center;\n height: 25px;\n width: 25px;\n`;\n\nexport const RoundedTableSkelton = styled.div`\n margin-top: -8px;\n min-height: auto;\n max-height: 60vh;\n table {\n border-collapse: separate;\n width: 100%;\n border-spacing: 0px 8px;\n thead {\n tr {\n th {\n font-size: 14px;\n font-weight: 600;\n padding: 8px 15px;\n text-align: left;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n\n background: #f0f2f2;\n &:first-child {\n border-radius: 20px 0 0 20px;\n }\n &:last-child {\n border-radius: 0 20px 20px 0;\n }\n }\n }\n }\n tbody {\n tr {\n td {\n color: #3a3630;\n font-size: 13px;\n font-weight: 400;\n line-height: 16px;\n padding: 6px 15px;\n text-align: left;\n box-shadow: 3px 1px 3px 0px rgba(16, 24, 40, 0.1);\n\n background: #fff;\n\n &:first-child {\n border-radius: 20px 0 0 20px;\n }\n\n &:last-child {\n border-radius: 0 20px 20px 0;\n }\n }\n }\n }\n }\n`;\n\nexport const TableWrapper = styled.div`\n width: 800px;\n min-height: 200px;\n max-height: 400px;\n`;\n\nexport const TableContainer = styled.div`\n max-height: 200px; /* Adjust height as needed */\n overflow-y: auto;\n position: relative;\n\n &::-webkit-scrollbar {\n width: 8px; /* Adjust width for thin scrollbar */\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2); /* Adjust color and transparency */\n border-radius: 4px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar {\n display: none; /* Hide the scrollbar */\n }\n\n -ms-overflow-style: none; /* Internet Explorer 10+ */\n scrollbar-width: none; /* Firefox */\n`;\n\nexport const StyledTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n`;\n\nexport const StyledThead = styled.thead`\n position: sticky;\n top: 0;\n background: white;\n z-index: 1;\n`;\n\nexport const Heading = styled.div`\n color: #3a3630;\n font-family: 'Roboto';\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n text-transform: uppercase;\n`;\n\nexport const SuccessText = styled.span`\n color: #29cc6a;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n\nexport const Td = styled.td`\n color: #3a3630;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: normal;\n padding: 5px 15px;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-right: none;\n border-left: none;\n`;\n\nexport const StyledTr = styled.tr`\n border-radius: 30px;\n background: #fff;\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n`;\n\nexport const AmountContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const AmountSymbol = styled.span`\n margin-right: 4px;\n`;\n\nexport const StyledAmountInput = styled(Input)`\n padding: 5px;\n width: 50%;\n`;\n\nexport const StatusWrapper = styled.div`\n color: #3a3630;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n","import React, { useState } from 'react';\nimport { useCurrentAction, useOrderDetails, useOrderId } from '../../../store';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport { Label, StyledInput } from '../modalstyle';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../../types';\nimport styled from 'styled-components';\nimport { notification } from 'antd';\nimport TextArea from 'antd/es/input/TextArea';\n\nfunction SendSmsModal() {\n const [, setCurrentAction] = useCurrentAction();\n const [orderDetails] = useOrderDetails();\n const [orderId] = useOrderId();\n const VALID_UK_MOBILE_REGEX = /^(07\\d{8,12}|447\\d{7,11})$/;\n const [toError, setToError] = useState('');\n const [formData, setFormData] = useState({\n to: [\n orderDetails?.order_recipient?.contact_mobile,\n orderDetails?.order_recipient?.contact_home,\n orderDetails?.order_recipient?.contact_work,\n ]\n .filter(Boolean)\n .join(', '),\n body: '',\n });\n\n const { fetchData: callSendSms, loading } = useAxios<{ data: ApiResponse[] }>(\n {\n endpoint: `/v1/orders/send-sms/`,\n method: 'POST',\n }\n );\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => {\n const { name, value } = e.target;\n\n if (name === 'to') {\n const rawValue = value;\n const numbers = rawValue.split(',').map(num => num.trim());\n const invalids = numbers.filter(num => !VALID_UK_MOBILE_REGEX.test(num));\n\n if (invalids.length === numbers.length) {\n setToError('Enter at least one valid UK mobile number.');\n } else {\n setToError('');\n }\n setFormData(prev => ({ ...prev, to: rawValue }));\n } else {\n setFormData(prev => ({ ...prev, [name]: value }));\n }\n };\n\n const handleSubmit = async () => {\n const trimmedBody = formData?.body?.trim();\n if (!trimmedBody) return;\n\n const rawContacts = formData.to.split(',').map(num => num.trim());\n\n const validContacts = rawContacts.filter(num =>\n VALID_UK_MOBILE_REGEX.test(num)\n );\n\n if (validContacts.length === 0) {\n notification.warning({\n message: 'No Valid UK Mobile Numbers',\n description:\n 'Please provide at least one valid UK mobile number (e.g., 07123...).',\n });\n return;\n }\n\n try {\n for (const number of validContacts) {\n const payload = {\n order_id: +orderId,\n receiver: number,\n message: trimmedBody,\n notification_type: 'Send SMS',\n };\n\n const response = (await callSendSms({ payload })) as {\n code: number | null;\n error?: string | null;\n message?: string;\n [key: string]: any;\n };\n\n if (response.code === 200) {\n notification.success({\n message: 'SMS Sent',\n description: `Message sent to ${number}`,\n });\n } else {\n notification.error({\n message: 'SMS Failed',\n description: `Failed to send to ${number}: ${response?.error ||\n 'Unknown error'}`,\n });\n }\n }\n\n closeModal();\n } catch (error) {\n const err = error as any;\n const errMsg =\n err?.response?.data?.error ||\n err?.response?.data?.message ||\n err?.message ||\n 'An unexpected error occurred.';\n\n notification.error({\n message: 'Request Failed',\n description: errMsg,\n });\n }\n };\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n\n const isFormValid =\n formData?.to.trim()?.length > 0 &&\n !toError &&\n formData?.body.trim().length > 0;\n\n return (\n <OrderActionModal\n headerTitle=\"Send SMS\"\n onCloseHeader={closeModal}\n onSubmit={handleSubmit}\n submitBtnTitle={loading ? 'Sending...' : 'Send SMS'}\n isSubmitDisabled={!isFormValid || loading}\n >\n <ContentContainer>\n <Label>To</Label>\n <StyledInput\n type=\"text\"\n name=\"to\"\n value={formData.to}\n onChange={handleInputChange}\n required\n placeholder=\"Enter the number\"\n />\n {toError && <ErrorText>{toError}</ErrorText>}\n\n <Label>Body</Label>\n <TextArea\n style={{ width: '700px', height: '140px', resize: 'none' }}\n name=\"body\"\n value={formData.body}\n onChange={handleInputChange}\n required\n placeholder=\"Write here...\"\n maxLength={500}\n count={{\n show: true,\n max: 500,\n }}\n />\n </ContentContainer>\n </OrderActionModal>\n );\n}\n\nexport const ContentContainer = styled.div`\n display: flex;\n padding: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n border-radius: 15px;\n`;\n\n// const CustomTextArea = styled(TextArea)`\n// width: 700px;\n// height: 140px;\n// resize: none;\n// `;\n\nconst ErrorText = styled.div`\n color: red;\n font-size: 12px;\n margin-top: 4px;\n`;\n\nexport default SendSmsModal;\n","import React, { useState } from 'react';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport { useCurrentAction, useOrderDetails, useOrderId } from '../../../store';\nimport { ContentContainer, StyledInput, StyledTextArea } from '../modalstyle';\nimport { Label, useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../../types';\nimport { notification } from 'antd';\n\nfunction SendEmailModal() {\n const [, setCurrentAction] = useCurrentAction();\n const [orderDetails] = useOrderDetails();\n const [orderId] = useOrderId();\n\n const initialTo = orderDetails?.order_recipient?.contact_email || '';\n const initialSubject = `${orderDetails?.trading_name ||\n ''} Order Update - ${orderDetails?.consignment || ''}`;\n\n const [formData, setFormData] = useState({\n to: initialTo,\n subject: initialSubject,\n body: '',\n });\n\n const [emailError, setEmailError] = useState('');\n const [loading, setLoading] = useState(false);\n\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n\n const validateEmail = (email: string) => {\n setEmailError(emailRegex.test(email) ? '' : 'Invalid email format');\n };\n\n const closeModal = () => setCurrentAction(undefined);\n\n const { fetchData: callSendEmail } = useAxios<{ data: ApiResponse[] }>({\n endpoint: `orders/${orderId}/trigger-email/`,\n method: 'POST',\n });\n\n const handleChange = (\n e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => {\n const { name, value } = e.target;\n setFormData(prev => ({ ...prev, [name]: value }));\n\n if (name === 'to') validateEmail(value);\n };\n\n const handleSubmit = async () => {\n const { to, subject, body } = formData;\n\n if (!to.trim() || !subject.trim() || !body.trim()) {\n alert('All fields are required!');\n return;\n }\n if (emailError) {\n alert('Please enter a valid email address.');\n return;\n }\n\n const payload = [\n {\n order_id: Number(orderId),\n email: to,\n subject,\n message: body,\n },\n ];\n\n setLoading(true);\n\n try {\n const response = await callSendEmail({ payload });\n console.log(response, 'responseresponse');\n if (response) {\n notification.success({\n message: 'Success',\n description: 'Email sent successfully!',\n });\n closeModal(); // Close modal on success\n } else {\n notification.error({\n message: 'Error',\n description: 'Failed to send email. Please try again.',\n });\n }\n } catch (error) {\n alert('An error occurred while sending the email.');\n } finally {\n setLoading(false);\n }\n };\n\n const isDisabled =\n Object.values(formData).some(val => !val.trim()) || !!emailError || loading;\n\n return (\n <OrderActionModal\n headerTitle=\"Send Email\"\n onCloseHeader={closeModal}\n onSubmit={handleSubmit}\n submitBtnTitle={loading ? 'Sending...' : 'Send Email'}\n isSubmitDisabled={isDisabled}\n >\n <ContentContainer>\n <Label label=\"To\" required />\n <StyledInput\n type=\"text\"\n name=\"to\"\n required\n placeholder=\"Enter email\"\n value={formData.to}\n onChange={handleChange}\n onBlur={() => validateEmail(formData.to)}\n />\n {emailError && <span style={{ color: 'red' }}>{emailError}</span>}\n\n <Label label=\"Subject\" required />\n <StyledInput\n type=\"text\"\n name=\"subject\"\n required\n value={formData.subject}\n onChange={handleChange}\n />\n\n <Label label=\"Body\" required />\n <StyledTextArea\n name=\"body\"\n placeholder=\"Write here...\"\n required\n value={formData.body}\n onChange={handleChange}\n />\n </ContentContainer>\n </OrderActionModal>\n );\n}\n\nexport default SendEmailModal;\n","import React, { useState } from 'react';\nimport { AntSelect, useAxios } from '@bjsdistribution/dms-component-library';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport { ContentContainer, Label, Row, SplitLayout } from '../modalstyle';\nimport {\n useCurrentAction,\n useCustomerData,\n useOrderDetails,\n useOrderId,\n} from '../../../store';\nimport { Input, notification } from 'antd';\nimport { ApiResponse } from '../../../types';\ninterface IProps {\n callOrdersApi?: any;\n}\n\nfunction ChangeCustomerAccModal(props: IProps) {\n const [orderId] = useOrderId();\n const [customerData] = useCustomerData();\n const [, setCurrentAction] = useCurrentAction();\n const [orderDetails] = useOrderDetails();\n const [selectedCustomerId, setSelectedCustomerId] = useState<any>(\n orderDetails?.customer_id ?? null\n );\n const [tradingName, setTradingName] = useState<string>(\n orderDetails?.trading_name || ''\n );\n const orderRecipient = orderDetails?.order_recipient;\n const infoText = `${orderRecipient?.recipient_name}, ${orderRecipient?.postcode}`;\n const closeModal = () => setCurrentAction(undefined);\n\n const customerMappedData = customerData?.map((customer: any) => ({\n label: customer?.customer_name,\n value: customer?.id,\n }));\n\n const { fetchData } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/change_customer_account`,\n method: 'PUT',\n });\n\n const handleChangeAcc = async () => {\n if (selectedCustomerId == null || !tradingName?.trim()) {\n notification.warning({\n message: 'Validation Error',\n description: 'Please select a customer and enter a trading name.',\n });\n return;\n }\n\n try {\n const payload = [\n {\n order_id: +orderId,\n customer_id: +selectedCustomerId,\n trading_name: tradingName,\n },\n ];\n const response = (await fetchData({ payload })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n await props?.callOrdersApi();\n closeModal();\n }\n } catch {\n notification.error({\n message: 'Error',\n description: 'Something went wrong while saving.',\n });\n }\n };\n\n const handleSelectChange = (value: string) => {\n setSelectedCustomerId(+value);\n const selected = customerMappedData?.find(c => c?.value === +value);\n if (selected) {\n setSelectedCustomerId(selected?.value);\n }\n };\n\n return (\n <OrderActionModal\n headerTitle=\"Change customer account\"\n onCloseHeader={closeModal}\n onSubmit={handleChangeAcc}\n showAdditionalInfo\n infoText={infoText}\n submitBtnTitle=\"Save Details\"\n >\n <ContentContainer>\n <SplitLayout>\n <Row>\n <Label>New Customer</Label>\n <AntSelect\n options={customerMappedData}\n placeholder=\"Select Customer\"\n onChange={handleSelectChange}\n style={{ width: '22vw', height: 40 }}\n showSearch\n popupClassName=\"dropDownStyle\"\n selectWrapperClass=\"rounded\"\n defaultValue={selectedCustomerId}\n />\n </Row>\n\n <Row>\n <Label>New Trading Name</Label>\n <Input\n style={{ borderRadius: '15px', minWidth: '22vw' }}\n value={tradingName}\n onChange={e => setTradingName(e.target.value)}\n />\n </Row>\n </SplitLayout>\n </ContentContainer>\n </OrderActionModal>\n );\n}\n\nexport default ChangeCustomerAccModal;\n","import React, { useEffect, useState } from 'react';\nimport {\n AntSelect,\n Label,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport {\n useCurrentAction,\n useCustomerInfo,\n useOrderId,\n useOrderStaticData,\n} from '../../../store';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport {\n HoldContentContainer,\n HoldDatePickerWrap,\n HoldRow,\n SplitText,\n} from '../modalstyle';\nimport { DatePicker, DatePickerProps, notification } from 'antd';\nimport dayjs from 'dayjs';\nimport { ApiResponse } from '../../../types';\nimport { useClientPortal } from '../../../../store';\n\ninterface IProps {\n callOrderAlertsApi: any;\n callOrdersApi?: any;\n callOrderStatusApi: any;\n callUnresolvedTaskApi?: any;\n}\n\nfunction HoldOrderModal(props: IProps) {\n const [orderId] = useOrderId();\n const [, setCurrentAction] = useCurrentAction();\n const [orderStaticData] = useOrderStaticData();\n const [selectedDate, setDate] = useState<Date | string | null>(null);\n const [holdReason, setHoldReason] = useState<string | undefined>(undefined);\n const [customerInfo] = useCustomerInfo();\n const [isClientPortal] = useClientPortal();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n\n const onHoldReasonOptions = orderStaticData?.onhold_reasons?.map(\n (item: any) => {\n return {\n label: item?.reason,\n value: item?.reason,\n };\n }\n );\n\n const dynamicUrl = selectedDate\n ? `orders/${orderId}/hold/?hold_reason=${holdReason}&hold_until=${selectedDate}`\n : `orders/${orderId}/hold/?hold_reason=${holdReason}\n`;\n\n const { fetchData: callOnHoldApi, error } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: dynamicUrl,\n method: 'POST',\n });\n\n const onClose = () => {\n setCurrentAction(undefined);\n };\n\n const onChangeHold = (value: string) => {\n setHoldReason(value);\n };\n\n const handleDateChange: DatePickerProps['onChange'] = (date, _dateString) => {\n const newDate = date?.format('YYYY-MM-DDTHH:mm:ss');\n if (newDate !== undefined) {\n setDate(newDate);\n } else {\n setDate(null);\n }\n };\n\n const onSubmitHold = async () => {\n if (orderId) {\n const response = (await callOnHoldApi()) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n // call orders api to update status\n if (isClientPortal) {\n await props?.callUnresolvedTaskApi();\n }\n await props?.callOrderAlertsApi();\n await props?.callOrderStatusApi();\n await props?.callOrdersApi();\n }\n if (response?.code !== 200) {\n notification.error({\n message: 'Error',\n description: `${response.error}`,\n });\n setCurrentAction(undefined);\n }\n }\n };\n\n useEffect(() => {\n //@ts-ignore\n if (error !== null && error?.code !== 200) {\n console.log('entered');\n notification.error({\n //@ts-ignore\n message: `${error?.error}`,\n description: (\n //@ts-ignore\n <span dangerouslySetInnerHTML={{ __html: error?.message }} />\n ),\n });\n setCurrentAction(undefined);\n }\n }, [error]);\n\n const showSubmitBtn = holdReason !== undefined;\n\n return (\n <OrderActionModal\n minWidth=\"24vw\"\n headerTitle=\"Hold order\"\n onCloseHeader={onClose}\n onSubmit={onSubmitHold}\n showAdditionalInfo\n infoText={infoText}\n submitBtnTitle=\"Save Details\"\n isSubmitDisabled={!showSubmitBtn}\n >\n <HoldContentContainer>\n <SplitText>\n <HoldRow>\n <Label label=\"Hold Until (leave blank for indefinite)\" />\n <HoldDatePickerWrap>\n <DatePicker\n needConfirm\n format={'MMMM D, YYYY'}\n onChange={handleDateChange}\n value={\n selectedDate === null ? selectedDate : dayjs(selectedDate)\n }\n disabledDate={current => {\n return current && current < dayjs().startOf('day');\n }}\n />\n </HoldDatePickerWrap>\n </HoldRow>\n\n <HoldRow>\n <Label label=\"Hold Reason\" required />\n <AntSelect\n options={onHoldReasonOptions || []}\n placeholder=\"Select Hold Reason\"\n onChange={onChangeHold}\n disabled={false}\n style={{ width: '346px', height: 40 }}\n showSearch={true}\n popupClassName={'dropDownStyle'}\n selectWrapperClass={'rounded'}\n defaultValue={holdReason}\n />\n </HoldRow>\n </SplitText>\n </HoldContentContainer>\n </OrderActionModal>\n );\n}\n\nexport default HoldOrderModal;\n","import {\n CancelAndCompleteAction,\n CancelationModal,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useCurrentAction, useOrderId } from '../../../store';\nimport { ApiResponse } from '../../../types';\nimport { notification } from 'antd';\nimport { useClientPortal } from '../../../../store';\ninterface IProps {\n callOrderAlertsApi: any;\n callOrdersApi?: any;\n callUnresolvedTaskApi?: any;\n callOrderStatusApi: any;\n}\n\nconst UnholdOrder = (props: IProps) => {\n const [orderId] = useOrderId();\n const [, setCurrentAction] = useCurrentAction();\n const [isClientPortal] = useClientPortal();\n\n const { fetchData: fetchUnholdData } = useAxios<{\n data: ApiResponse[];\n }>({\n // remove the date from the params as requested by backend\n endpoint: `orders/${orderId}/unhold/`,\n method: 'POST',\n });\n\n const saveButton = async () => {\n if (orderId) {\n const response = (await fetchUnholdData()) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n // call orders api to update status\n if (isClientPortal) {\n await props?.callUnresolvedTaskApi();\n }\n await props?.callOrderAlertsApi();\n await props?.callOrdersApi();\n await props?.callOrderStatusApi();\n }\n if (response?.code !== 200) {\n notification.error({\n message: 'Error',\n description: `${response.error}`,\n });\n setCurrentAction(undefined);\n }\n }\n };\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n return (\n <CancelationModal\n title=\"Unhold Order\"\n description=\"Are you sure, you want to UnHold the Order?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={closeModal}\n completeLabel=\"Confirm\"\n onComplete={saveButton}\n />\n }\n />\n );\n};\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nexport default UnholdOrder;\n","import { Label, useAxios } from '@bjsdistribution/dms-component-library';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport {\n useDeptData,\n useReminderById,\n useUpdateReminderData,\n} from '../order-actions/store';\nimport { Select } from 'antd';\nimport { ApiResponse } from '../types';\n\nfunction AssigneeDropdown() {\n const [reminderData] = useReminderById();\n const [reminderPayload, setReminderPayload] = useUpdateReminderData();\n const [departmentData, setDepartmentData] = useDeptData();\n const [allUsers, setAllUsers] = useState<\n {\n fName: string;\n lName: string;\n id: string;\n username: string;\n deptId: number | null;\n legacyId: any;\n }[]\n >([]);\n\n const disabled = reminderData?.status === true;\n\n const handleSelectChange = (value: string[]) => {\n setReminderPayload((prev: any) => ({\n ...prev,\n assigned_to: value,\n }));\n };\n\n // Normalize legacyId to id when reminderData is first loaded\n useEffect(() => {\n if (\n reminderData?.assigned_to &&\n typeof reminderData.assigned_to === 'string'\n ) {\n const matched = allUsers.find(\n user => user.legacyId === reminderData?.assigned_to\n );\n\n if (matched) {\n const id = matched?.id;\n setReminderPayload((prev: any) => ({ ...prev, assigned_to: [id] }));\n }\n }\n }, [reminderData?.assigned_to, allUsers]);\n\n const deptData =\n departmentData?.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n })) || [];\n\n const [selectedDeptIds, setSelectedDeptIds] = useState<string[]>([]);\n\n // SSO Departments\n const { fetchData: getSSOData, data: fetchData } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/sso/departments/`,\n method: 'GET',\n });\n\n useEffect(() => {\n const fetchAllSSOData = async () => {\n try {\n getSSOData();\n } catch (error) {\n console.error('Error fetching SSO data:', error);\n }\n };\n fetchAllSSOData();\n }, []);\n\n const { fetchData: getUsersData } = useAxios<{ data: any }>({\n endpoint: `/sso/users/`,\n method: 'GET',\n });\n\n useEffect(() => {\n const fetchAllPages = async () => {\n try {\n let page = 0;\n let usersList: any[] = [];\n let totalPages = 1;\n\n while (page < totalPages) {\n const res = (await getUsersData({\n endPointQuery: `?page=${page}&limit=500`,\n })) as { data: any };\n\n const data = res?.data;\n\n if (data) {\n usersList = [...usersList, ...(data?.users || [])];\n totalPages = data.pages || 1;\n page += 1;\n } else {\n break;\n }\n }\n\n setAllUsers(\n usersList?.map(user => ({\n id: user?.id,\n username: user?.username,\n deptId: user?.department_id,\n fName: user?.first_names,\n lName: user?.last_name,\n legacyId: user?.legacy_id,\n }))\n );\n } catch (error) {\n console.error('Error fetching paginated SSO data:', error);\n }\n };\n\n fetchAllPages();\n }, []);\n\n useEffect(() => {\n if (\n selectedDeptIds.length === 0 &&\n reminderPayload?.department &&\n departmentData?.length > 0\n ) {\n const deptNames = reminderPayload.department\n .split(',')\n .map((d: any) => d.trim());\n\n const matched = departmentData\n .filter((dept: any) => deptNames.includes(dept.label))\n .map((dept: any) => dept.value);\n\n setSelectedDeptIds(matched);\n }\n }, [reminderPayload?.department, departmentData, selectedDeptIds]);\n\n useEffect(() => {\n if (fetchData && fetchData?.data) {\n const deptList =\n fetchData?.data?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) || [];\n setDepartmentData(deptList);\n }\n }, [fetchData]);\n\n const assignedUserIds = (reminderPayload?.assigned_to ?? []) as string[];\n\n const selectedUsers = allUsers?.filter(user =>\n assignedUserIds?.includes(user?.id)\n );\n\n const deptUsers = selectedDeptIds.length\n ? allUsers?.filter(user => selectedDeptIds?.includes(user?.deptId as any))\n : [];\n\n const mergedUsersMap = new Map();\n\n // Add selected users first\n selectedUsers?.forEach(user => {\n mergedUsersMap?.set(user.id, {\n label: `${user?.fName} ${user?.lName}`,\n value: user?.id,\n });\n });\n\n // Add department users next\n deptUsers?.forEach(user => {\n if (!mergedUsersMap?.has(user?.id)) {\n mergedUsersMap?.set(user?.id, {\n label: `${user?.fName} ${user?.lName}`,\n value: user?.id,\n });\n }\n });\n\n const userOptions = Array.from(mergedUsersMap.values());\n\n const handleDepartmentChange = (\n values: string[],\n options: { label: string }[]\n ) => {\n setSelectedDeptIds(values);\n\n const deptLabels = options?.map(opt => opt.label).join(', ');\n\n let updatedAssignedTo = reminderPayload?.assigned_to || [];\n\n if (reminderPayload && reminderPayload?.assigned_to?.length > 0) {\n const matchedUsers = allUsers?.filter(\n user => user?.deptId !== null && values?.includes(String(user?.deptId))\n );\n\n updatedAssignedTo = reminderPayload?.assigned_to?.filter((id: any) =>\n matchedUsers?.some(user => user.id === id)\n );\n }\n\n setReminderPayload((prev: any) => ({\n ...prev,\n department: deptLabels,\n assigned_to: updatedAssignedTo,\n }));\n };\n\n return (\n <FormContainer>\n <Label label=\"Department\" required />\n <StyledAntSelect\n disabled={disabled}\n mode=\"multiple\"\n options={deptData}\n placeholder=\"Select Department\"\n onChange={handleDepartmentChange}\n // {(values: string[], options: { label: string }[]) => {\n // setSelectedDeptIds(values);\n // setReminderPayload((prev: any) => ({\n // ...prev,\n // department: options?.map(o => o?.label).join(', '),\n // assigned_to: reminderPayload?.assigned_to,\n // }));\n // }}\n style={{ width: '8vw' }}\n value={selectedDeptIds}\n />\n\n <Label label=\"Assigned To\" required htmlFor=\"assigneDropdown\" />\n <StyledAntSelect\n disabled={disabled}\n options={userOptions}\n placeholder=\"Select User\"\n onChange={handleSelectChange}\n style={{ width: '100%' }}\n value={reminderPayload?.assigned_to || []}\n showSearch\n filterOption={(input: any, option: any) =>\n (option?.label as string).toLowerCase().includes(input.toLowerCase())\n }\n mode=\"multiple\"\n />\n </FormContainer>\n );\n}\n\nconst FormContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n width: 325px;\n`;\n\nconst StyledAntSelect: any = styled(Select)``;\n\nexport default AssigneeDropdown;\n","import { TextArea, Input } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nexport const ReferenceContainer = styled.div`\n display: flex;\n width: 770px;\n align-items: center;\n flex: 1 0 0;\n border-radius: 40px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: #fff;\n margin-top: 15px;\n`;\nexport const InnerContainer = styled.div`\n display: flex;\n padding: 5px 15px;\n align-items: center;\n gap: 20px;\n flex: 1 0 0;\n`;\nexport const MiniContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 3px;\n flex: 1;\n`;\nexport const StyledText = styled(TextArea)`\n display: flex;\n height: 105px;\n padding: 8px 12px;\n align-items: flex-start;\n gap: 4px;\n align-self: stretch;\n border-radius: 15px;\n resize: none;\n`;\nexport const ReferInput = styled(Input)`\n border: none;\n border-radius: 15px;\n width: 330px;\n`;\nexport const InputContainer = styled(Input)`\n border: none;\n border-radius: 15px;\n width: 330px;\n`;\nexport const ReferInputContainer = styled(Input)`\n border: none;\n border-radius: 15px;\n width: 330px;\n`;\nexport const StyledDateContainer = styled.div`\n position: relative;\n border-radius: 66px;\n border: 1px solid #e0e2e7;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.05);\n input[type='text'] {\n border-radius: 20px;\n background: #fff;\n border: none;\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n padding: 10px 0;\n padding-left: 33px;\n &:focus-visible {\n outline: none;\n }\n }\n svg {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n`;\n\nexport const StyledDate = styled(Input)`\n border-radius: 66px;\n width: 175px;\n padding-right: 30px;\n`;\n\nexport const TimeWrapper = styled.div`\n display: flex;\n width: 80px;\n flex-direction: column;\n align-items: flex-start;\n gap: 6px;\n`;\nexport const StyledTime = styled(Input)`\n border-radius: 30px;\n border: 1px solid #e0e2e7;\n background: #fff;\n\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n display: flex;\n padding: 8px 5px;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n`;\nexport const IconContainer = styled.div`\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n`;\nconst Column = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nexport const Row = styled(Column)`\n gap: 10px;\n`;\nexport const Right = styled.div`\n display: flex;\n justify-content: space-between;\n height: 100%;\n gap: 15px;\n`;\nexport const Left = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n gap: 15px;\n padding: 15px;\n`;\nexport const DateTimeContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n align-self: stretch;\n`;\nexport const AssigneeContainer = styled.div`\n display: flex;\n padding: 15px 12px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n`;\nexport const DetailedContainer = styled.textarea<{ disabled?: boolean }>`\n display: flex;\n width: 416px;\n padding: 15px 12px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 5px;\n flex: 1 0 0;\n border-radius: 14px;\n background: #f8fafc;\n background: ${({ disabled }) => (disabled ? 'rgba(0, 0, 0, 0.04)' : '#fff')};\n color: ${({ disabled }) => (disabled ? '#666' : '#000')};\n pointer-events: ${({ disabled }) => (disabled ? 'none' : 'auto')};\n font-family: 'Lato', sans-serif;\n min-height: 170px;\n &::placeholder {\n color: #aaa;\n }\n`;\nexport const ContentsContainer = styled(Column)`\n display: flex;\n margin: 15px;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n border-radius: 15px;\n background: #f8fafc;\n /* shadow/shadow-sm */\n box-shadow: 0px 1px 3px 0px rgba(16, 24, 40, 0.1);\n`;\n` `;\n","import { format } from 'date-fns';\nimport { StatusType } from './types';\n\ninterface Option {\n id: string;\n name?: string;\n type?: string;\n category?: string;\n color?: string;\n}\n\n//to change data into options\nexport const transformOption = (option: Option, key: keyof Option) => {\n const rawLabel = option[key] ? String(option[key]) : '';\n const formattedLabel = rawLabel.replace(/_/g, ' ');\n const capitalizedLabel =\n formattedLabel.charAt(0).toUpperCase() + formattedLabel.slice(1);\n return {\n label: capitalizedLabel,\n value: option.id,\n };\n};\n\nexport const getStatusColor = (status: StatusType) => {\n switch (status) {\n case 'AD':\n return 'linear-gradient(180deg, #DC69AE 0%, #E95252 100%)';\n case 'SD':\n return 'linear-gradient(180deg, #B6DC69 0%, #57DB7A 100%)';\n default:\n return 'black';\n }\n};\n\n//date format\nexport function formatDate(dateInput?: string | number | Date): string {\n if (!dateInput) return 'N/A';\n\n const date = new Date(dateInput);\n if (isNaN(date.getTime())) return 'N/A';\n\n return format(date, 'eee, dd/MM/yyyy HH:mm:ss');\n}\n\nexport function getDay(dateInput?: string | number | Date): string {\n if (!dateInput) return 'N/A';\n\n const date = new Date(dateInput);\n if (isNaN(date.getTime())) return 'N/A';\n\n return format(date, 'eee');\n}\n\n//with colors\nexport const priorityData = [\n { id: 1, name: 'Low', color: '#6396E5' },\n { id: 2, name: 'Medium', color: '#FEBA30' },\n { id: 3, name: 'High', color: '#E95252' },\n];\n\nexport const snoozeData = [\n { id: 1, name: '15m' },\n { id: 2, name: '30m' },\n { id: 3, name: '1h' },\n];\n","import React from 'react';\nimport styled from 'styled-components';\nimport 'tippy.js/dist/tippy.css';\nimport { StatusType } from '../order-actions/types';\nimport { getStatusColor } from '../order-actions/utils';\n\ninterface StatusProps {\n status: StatusType;\n text?: string;\n}\n\nfunction StatusIndicator(props: StatusProps) {\n const statusColor = getStatusColor(props.status);\n\n return (\n <Container>\n <StatusCircleContainer status={props.status}>\n <StatusCircle color={statusColor} />\n </StatusCircleContainer>\n\n <Text status={props.status}>{props.text}</Text>\n </Container>\n );\n}\n\nconst StatusCircleContainer = styled.span<{ status: StatusType }>`\n height: 20px;\n width: 20px;\n border: 1px solid\n ${props =>\n props.status === 'SD'\n ? '#30fe43'\n : props.status === 'AD'\n ? '#E95252'\n : 'transparent'};\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst StatusCircle = styled.span<{ color: string }>`\n height: 10px;\n width: 10px;\n background: ${props => props.color};\n border-radius: 50%;\n display: inline-block;\n transition: 0.2s ease all;\n`;\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n height: 22px;\n`;\n\nconst Text = styled.span<{ status: StatusType }>`\n font-size: 13px;\n font-weight: normal;\n text-transform: capitalize;\n font-weight: 500;\n color: ${props =>\n props.status === 'SD'\n ? '#57DB7A'\n : props.status === 'AD'\n ? '#E95252'\n : 'transparent'};\n`;\n\nexport default StatusIndicator;\n","import React, { useEffect } from 'react';\nimport OrderActionModal from '../../../common/modals/order-action-modal/OrderActionModal';\nimport AssigneeDropdown from './AssigneeDropdown';\nimport { useCurrentAction } from '../store';\nimport { DatePickerWrap } from '../order-actions/actions/modalstyle';\nimport {\n ReferenceContainer,\n InnerContainer,\n ContentsContainer,\n Left,\n DateTimeContainer,\n Row,\n DetailedContainer,\n MiniContainer,\n} from './reminder-styles';\nimport {\n useReminderRefId,\n useReminderById,\n useUpdateReminderData,\n useReminderNotiData,\n} from '../order-actions/store';\nimport StatusIndicator from '../flags-action-modal/StatusIndicator';\nimport styled from 'styled-components';\n// import { isValid } from 'date-fns';\nimport { DatePicker, notification } from 'antd';\nimport dayjs from 'dayjs';\nimport { ApiResponse } from '../types';\nimport { Label, useAxios } from '@bjsdistribution/dms-component-library';\nimport { useReminderData } from '../../store';\n\nexport interface IProps {\n callReminderApi: any;\n}\n\nconst ViewReminderModal = (props: IProps) => {\n const [, setCurrentAction] = useCurrentAction();\n const [reminderDataById, setReminderByIdData] = useReminderById();\n const [reminderPayload, setReminderPayload] = useUpdateReminderData();\n const [reminderRefId] = useReminderRefId();\n const [, setReminderUpdatedData] = useReminderNotiData();\n const [, setReminderData] = useReminderData();\n\n const {\n data: fetchedReminderInitialData,\n fetchData: callReminderApiInitial,\n loading,\n } = useAxios<{\n data: any;\n }>({\n endpoint: `/v1/task/reminder/${reminderRefId}`,\n method: 'GET',\n pagination: { is_pagination: false },\n // filters: [{ field: 'order_id', op: '=', value: reminderRefId }],\n });\n\n useEffect(() => {\n if (fetchedReminderInitialData && fetchedReminderInitialData?.data) {\n const data = fetchedReminderInitialData?.data[0];\n setReminderByIdData(data);\n setReminderPayload(data);\n }\n }, [fetchedReminderInitialData, loading]);\n\n useEffect(() => {\n if (reminderRefId) {\n callReminderApiInitial();\n }\n }, [reminderRefId]);\n\n const handleDateChange = (date: any | null) => {\n if (date && date.isValid()) {\n const selectedDate = date.toISOString();\n setReminderPayload({\n ...reminderPayload,\n due_datetime: selectedDate,\n });\n } else {\n setReminderPayload({\n ...reminderPayload,\n due_datetime: null,\n });\n }\n };\n\n const { fetchData: callReminderEditAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/reminder/update/`,\n method: 'PUT',\n });\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n\n const onChangeDetails = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newDescription = event.target.value;\n\n setReminderPayload({\n ...reminderPayload,\n description: newDescription,\n });\n };\n\n const handleStatusChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = event.target.checked;\n setReminderPayload({\n ...reminderPayload,\n status: isChecked,\n });\n };\n\n const handleEditReminder = async () => {\n try {\n if (reminderDataById?.status === true) {\n notification.info({\n message: 'Info',\n description:\n 'This flag has been set as resolved - changes are no longer permitted.',\n });\n return;\n }\n\n // Destructure to remove unwanted fields\n const {\n is_deleted,\n legacy_reminder_id,\n order_data,\n priority,\n reference,\n completed_at,\n completed_by,\n ...cleanedPayload\n } = reminderPayload;\n\n cleanedPayload.id = reminderRefId;\n cleanedPayload.order_id = reminderDataById?.order_id;\n\n const apiResponse = (await callReminderEditAPI({\n payload: [cleanedPayload],\n })) as {\n code: number | null;\n error?: string | null | undefined;\n data?: any;\n [key: string]: any;\n };\n\n if (apiResponse?.code === 200) {\n if (apiResponse && apiResponse?.data) {\n setReminderUpdatedData(apiResponse?.data);\n setReminderData(apiResponse?.data);\n props?.callReminderApi();\n }\n\n closeModal();\n notification.success({\n message: 'Success',\n description: apiResponse.message,\n });\n } else {\n notification.error({\n message: 'Failure',\n description:\n apiResponse?.error ||\n 'An error occurred while updating the reminder.',\n });\n }\n } catch (error) {\n const err = error as any;\n const errMsg =\n err?.response?.data?.error ||\n err?.response?.data?.message ||\n err?.message ||\n 'An unexpected error occurred.';\n\n notification.error({\n message: 'Request Failed',\n description: errMsg,\n });\n }\n };\n\n const arraysEqual = (a: any = [], b: any = []) => {\n if (a.length !== b.length) return false;\n return a.every((val: any, index: any) => val === b[index]);\n };\n\n const isSameDate = (d1: any, d2: any) => {\n if (!d1 || !d2) return d1 === d2; // both null/undefined\n const date1 = new Date(d1).toISOString();\n const date2 = new Date(d2).toISOString();\n return date1 === date2;\n };\n\n const hasReminderChanged = () => {\n if (!reminderDataById || !reminderPayload) return false;\n\n const original = {\n due_datetime: reminderDataById?.due_datetime,\n assigned_to: reminderDataById?.assigned_to || [],\n description: reminderDataById?.description?.trim(),\n department: reminderDataById?.department,\n status: reminderDataById?.status,\n };\n\n const updated = {\n due_datetime: reminderPayload?.due_datetime,\n assigned_to: reminderPayload?.assigned_to || [],\n description: reminderPayload?.description?.trim(),\n department: reminderPayload?.department,\n status: reminderPayload?.status,\n };\n\n const baseChanged =\n !isSameDate(original?.due_datetime, updated?.due_datetime) ||\n !arraysEqual(original?.assigned_to, updated?.assigned_to) ||\n original?.description !== updated?.description ||\n original?.status !== updated?.status;\n\n const shouldCompareDept =\n original?.department !== undefined && updated?.department !== undefined;\n\n const departmentChanged = shouldCompareDept\n ? original?.department !== updated?.department\n : false;\n\n return baseChanged || departmentChanged;\n };\n\n const isDisabled =\n !reminderPayload?.assigned_to?.length ||\n !reminderPayload?.description?.trim() ||\n !reminderPayload?.due_datetime ||\n !hasReminderChanged() ||\n reminderDataById?.status === true;\n\n const additional =\n reminderDataById?.order_data?.order_recipient?.recipient_name +\n ' ' +\n reminderDataById?.order_data?.order_recipient?.postcode;\n\n const disabled = reminderDataById?.status === true;\n\n return (\n <>\n {reminderDataById && (\n <OrderActionModal\n headerTitle=\"View Reminder\"\n onCloseHeader={closeModal}\n onSubmit={handleEditReminder}\n submitBtnTitle=\"Save Details\"\n infoText={additional || 'NA'}\n isSubmitDisabled={isDisabled || disabled}\n headerActions={\n <OuterDiv>\n {reminderDataById?.status === false && (\n <StyledWrapper>\n <StyledLabel>\n <StyledCheckbox>\n <input\n type=\"checkbox\"\n onChange={handleStatusChange}\n checked={reminderPayload?.status || false}\n disabled={disabled}\n />\n <RoundCheckbox />\n </StyledCheckbox>\n <StyledSpan>Mark As Complete</StyledSpan>\n </StyledLabel>\n </StyledWrapper>\n )}\n </OuterDiv>\n }\n >\n <ReferenceContainer>\n <InnerContainer>\n <MiniContainer>\n <Label label=\"Reference\" required />\n <LabelText>{reminderDataById?.reference || 'N/A'}</LabelText>\n </MiniContainer>\n <MiniContainer>\n <Label label=\"Status\" />\n <LabelText>\n {reminderDataById?.status === false ? (\n <StatusIndicator text=\"Incomplete\" status=\"AD\" />\n ) : (\n <StatusIndicator\n text={`Completed on ${reminderDataById?.completed_at} by ${reminderDataById?.completed_by}`}\n status=\"SD\"\n />\n )}\n </LabelText>\n </MiniContainer>\n </InnerContainer>\n </ReferenceContainer>\n\n <ContentsContainer>\n <Left>\n <AssigneeDropdown />\n <DateTimeContainer>\n <Label label=\"Due Date & Time\" required />\n <Row>\n <StyleContainer>\n <DatePickerWrap>\n <DatePicker\n format=\"DD/MM/YYYY HH:mm A\"\n value={\n reminderPayload?.due_datetime !== undefined\n ? reminderPayload.due_datetime\n ? dayjs(reminderPayload.due_datetime)\n : null\n : reminderDataById?.due_datetime\n ? dayjs(reminderDataById.due_datetime)\n : null\n }\n onChange={handleDateChange}\n placeholder=\"Select Date & Time\"\n showTime={{ defaultValue: dayjs('00:00', 'HH:mm') }}\n disabledDate={current =>\n current && current < dayjs().startOf('day')\n }\n disabledTime={date => getDisabledTime(date)}\n disabled={disabled}\n />\n </DatePickerWrap>\n </StyleContainer>\n </Row>\n </DateTimeContainer>\n </Left>\n\n <Right>\n <Label label=\"Details\" required />\n <DetailedContainer\n placeholder=\"Enter Description...\"\n name=\"text\"\n required\n value={\n reminderPayload?.description !== undefined\n ? reminderPayload.description\n : reminderDataById?.description || ''\n }\n disabled={disabled}\n onChange={onChangeDetails}\n />\n </Right>\n </ContentsContainer>\n </OrderActionModal>\n )}\n </>\n );\n};\n\nconst getDisabledTime = (date: any) => {\n if (date && date.isSame(dayjs(), 'day')) {\n const currentHour = dayjs().hour();\n const currentMinute = dayjs().minute();\n return {\n disabledHours: () =>\n Array.from({ length: 24 }, (_, i) => i).filter(\n hour => hour < currentHour\n ),\n disabledMinutes: (selectedHour: number) => {\n if (selectedHour === currentHour) {\n return Array.from({ length: 60 }, (_, i) => i).filter(\n minute => minute < currentMinute\n );\n }\n return [];\n },\n };\n }\n return {};\n};\n\nexport const Right = styled.div`\n display: flex;\n height: 100%;\n gap: 15px;\n flex-direction: column;\n padding: 10px;\n`;\nconst StyleContainer = styled.div`\n border-radius: 20px;\n background: #fff;\n width: 235px;\n`;\n\nconst StyledWrapper = styled.div`\n display: flex;\n padding: 6px 10px;\n align-items: center;\n gap: 5px;\n border-radius: 30px;\n background: #fff;\n`;\n\nconst StyledLabel = styled.label`\n cursor: pointer;\n display: flex;\n`;\n\nconst StyledSpan = styled.span`\n color: #131313;\n font-family: 'Lato', sans-serif;\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n line-height: 17px;\n white-space: nowrap;\n`;\n\nconst StyledCheckbox = styled.div`\n input[type='checkbox'] {\n display: none;\n }\n\n input[type='checkbox'] + span:before {\n width: 14px;\n height: 14px;\n border: 1.5px solid #3a3630;\n content: '';\n display: inline-block;\n margin: 0 8px 0 0;\n padding: 0;\n border-radius: 50%;\n }\n\n input[type='checkbox']:checked + span:before {\n background: #feba30;\n border: 1.5px solid #3a3630;\n box-shadow: inset 0px 0px 0px 1px #fff;\n color: #333;\n content: '';\n text-align: center;\n border-radius: 50%;\n display: flex;\n width: 14px;\n height: 14px;\n }\n\n input[type='checkbox']:focus + span::before {\n outline: 0;\n }\n`;\n\nconst OuterDiv = styled.div`\n padding-left: 33%;\n`;\n\nconst RoundCheckbox = styled.span``;\n\nconst LabelText = styled.span`\n color: var(--primary-dark-brown, #3a3630);\n font-family: Lato;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n\nexport default ViewReminderModal;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport {\n CancelAndCompleteAction,\n CancelationModal,\n CrossIcon,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport { useResolvedPayload, useFlagById } from '../order-actions/store';\nimport { useCurrentAction } from '../store';\nimport { ApiResponse } from '../types';\nimport { notification } from 'antd';\n\nfunction HeaderSection({ callUnresolvedTaskApi, setTasksData }: any) {\n const [flagById] = useFlagById();\n const [forResolvedPayload, setPayload] = useResolvedPayload();\n const [, setCurrentAction] = useCurrentAction();\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n //flag PUT API\n const { fetchData: callFlagUpdateAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/resolve/`,\n method: 'PUT',\n });\n\n useEffect(() => {\n if (flagById) {\n setPayload({\n task_ids: [flagById?.id],\n });\n }\n }, [flagById]);\n\n const openModal = () => {\n setIsModalOpen(true);\n };\n\n const closeModal = () => {\n setIsModalOpen(false);\n };\n\n const saveButton = async () => {\n const response = (await callFlagUpdateAPI({\n payload: forResolvedPayload,\n })) as {\n code: number | null;\n error?: string | null;\n message?: string;\n data?: any;\n [key: string]: any;\n };\n\n if (response.code === 200 && response?.data) {\n notification.success({\n message: 'Success',\n description: `${response?.message}`,\n });\n\n setIsModalOpen(false);\n setCurrentAction(undefined);\n\n // fetch tasks and update state\n const unresolvedResponse = await callUnresolvedTaskApi();\n if (unresolvedResponse && unresolvedResponse?.data) {\n setTasksData(unresolvedResponse?.data);\n }\n }\n\n if (response?.code == null && response?.error) {\n return notification.error({\n message: 'Failure',\n description: `${response?.error}`,\n });\n }\n };\n\n const onCancel = () => {\n setCurrentAction(undefined);\n };\n\n const isShow = flagById?.status !== 'AD';\n return (\n <Header>\n <Title>VIEW TASK</Title>\n {!isShow ? (\n <ResolveButton onClick={openModal}>MARK AS RESOLVED</ResolveButton>\n ) : (\n <CrossWrapper>\n <CrossIcon onClick={onCancel} />\n </CrossWrapper>\n )}\n {isModalOpen && (\n <StyledOverlay>\n <CancelationModal\n title=\"Mark as Resolved\"\n description=\"Are you sure you want to mark this Flag as resolved?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={closeModal}\n completeLabel=\"Confirm\"\n onComplete={saveButton}\n />\n }\n />\n </StyledOverlay>\n )}\n </Header>\n );\n}\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n`;\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nconst ResolveButton = styled.button`\n color: #3a3630;\n background: #feba30;\n padding: 6px;\n border-radius: 6px;\n font-weight: 600;\n font-size: 13px;\n border: 1px solid #feba30;\n`;\n\nconst Title = styled.span`\n font-family: 'Roboto', sans-serif;\n font-size: 20px;\n font-weight: 900;\n line-height: 32px;\n text-transform: uppercase;\n color: #3a3630;\n`;\n\nconst StyledOverlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(2px);\n z-index: 1000;\n`;\n\nconst CrossWrapper = styled.div`\n cursor: pointer;\n`;\n\nexport default HeaderSection;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Label, TextArea } from '@bjsdistribution/dms-component-library';\nimport { useUpdateTask } from '../order-actions/store';\n\nfunction TextSection() {\n const [taskPayload, setTaskPayload] = useUpdateTask();\n\n const onChangeDetails = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n setTaskPayload({\n ...taskPayload,\n description: event.target.value,\n });\n };\n\n return (\n <Text>\n <Label label=\"Details\" />\n <TextField\n placeholder=\"Type here....\"\n value={taskPayload?.description || ''}\n onChange={onChangeDetails}\n />\n </Text>\n );\n}\n\nconst TextField = styled(TextArea)`\n width: 97% !important;\n`;\n\nconst Text = styled.div`\n display: grid;\n margin-top: 2%;\n`;\n\nexport default TextSection;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { Label } from '@bjsdistribution/dms-component-library';\nimport StatusIndicator from './StatusIndicator';\nimport {\n useFlagById,\n useStaticData,\n useUpdateTask,\n} from '../order-actions/store';\nimport { formatDate, priorityData } from '../order-actions/utils';\nimport { Select } from 'antd';\n\nfunction ButtonsSection() {\n const [staticData] = useStaticData();\n const [flagById] = useFlagById();\n const [taskPayload, setTaskPayload] = useUpdateTask();\n\n const orderFlagTypes = staticData?.[0]?.order_flag_types || [];\n\n const taskTypeOptions = useMemo(\n () =>\n orderFlagTypes?.map((item: any) => ({\n label: item?.type,\n value: item?.id,\n })),\n [orderFlagTypes]\n );\n\n const getPriorityOptions = (staticData: any) => {\n return staticData?.[0]?.priorities?.map((option: any) => {\n const colorMatch = priorityData?.find(p => p.id === option.id);\n return {\n label: option.name,\n value: option.id,\n color: colorMatch?.color || '#ccc',\n };\n });\n };\n const priorityOptions = getPriorityOptions(staticData);\n\n const handleTaskTypeChange = (value: number) => {\n const selectedType =\n orderFlagTypes.find((type: any) => type.id === value)?.type || '';\n setTaskPayload(prev => ({ ...prev, flag_type: selectedType }));\n };\n\n const handlePriorityChange = (value: number) => {\n setTaskPayload((prev: any) => ({\n ...prev,\n priority: value,\n }));\n };\n\n const selectedTypeId = useMemo(\n () =>\n orderFlagTypes.find((type: any) => type.type === taskPayload?.flag_type)\n ?.id ||\n flagById?.flag_type ||\n null,\n [orderFlagTypes, taskPayload, flagById]\n );\n\n const isResolved = flagById?.status !== 'AD';\n\n const resolvedText = `Resolved on ${formatDate(\n flagById?.resolved_at || 'N/A'\n )} by ${flagById?.resolved_by || 'N/A'}`;\n\n return (\n <Buttons>\n <Flex>\n <Label label=\"Type\" />\n <StyledAntSelect\n options={taskTypeOptions}\n placeholder=\"Select Type\"\n onChange={handleTaskTypeChange}\n value={selectedTypeId}\n style={{ minWidth: '200px', width: 'auto' }}\n />\n </Flex>\n <Flex>\n <Label label=\"Priority\" />\n <StyledAntSelect\n options={priorityOptions}\n placeholder=\"Select Type\"\n onChange={handlePriorityChange}\n value={taskPayload?.priority || flagById?.priority}\n style={{ minWidth: '100px', width: 'auto' }}\n />\n </Flex>\n <Flex>\n <Label label=\"Status\" />\n {isResolved ? (\n <StatusIndicator text={resolvedText} status=\"SD\" />\n ) : (\n <StatusIndicator text=\"Unresolved\" status=\"AD\" />\n )}\n </Flex>\n </Buttons>\n );\n}\nexport const StyledAntSelect: any = styled(Select)`\n .ant-select-selector {\n /* width: 22vw; */\n border-radius: 22px;\n }\n`;\n\nconst Buttons = styled.div`\n display: flex;\n gap: 25px;\n`;\n\nconst Flex = styled.div`\n margin-top: 20px;\n`;\n\nexport default ButtonsSection;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { useFlagById, useUpdateTask } from '../order-actions/store';\nimport { useCurrentAction } from '../store';\nimport Tippy from '@tippyjs/react';\nimport {\n Button,\n RadioButtonGroup,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../types';\nimport { notification } from 'antd';\n\nexport const FlagsFilter = [\n {\n label: 'Private',\n value: 'private',\n },\n {\n label: 'Public',\n value: 'public',\n },\n];\n\nfunction SaveDetails({ callUnresolvedTaskApi, setTasksData }: any) {\n const [, setCurrentAction] = useCurrentAction();\n const [taskPayload] = useUpdateTask();\n\n const [flagById] = useFlagById();\n\n //flag PUT API\n const { fetchData: callFlagUpdateAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/update/`,\n method: 'PUT',\n });\n\n const onSubmit = async () => {\n const response = (await callFlagUpdateAPI({\n payload: [taskPayload],\n })) as {\n code: number | null;\n error?: string | null;\n message?: string;\n data?: any;\n [key: string]: any;\n };\n\n if (response.code === 200 && response?.data) {\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n\n setCurrentAction(undefined);\n\n const unresolvedResponse = await callUnresolvedTaskApi();\n if (unresolvedResponse && unresolvedResponse?.data) {\n setTasksData(unresolvedResponse?.data);\n }\n }\n\n if (response?.code == null && response?.error) {\n return notification.error({\n message: 'Failure',\n description: `${response.error}`,\n });\n }\n };\n\n const onCancel = () => {\n setCurrentAction(undefined);\n };\n\n const isDisabled = flagById?.status === 'SD';\n\n return (\n <Wrapper>\n <Tippy\n content={\n <TooltipContent>\n {\n 'This task cannot be edited because it has been marked as resolved.'\n }\n </TooltipContent>\n }\n placement=\"bottom\"\n arrow={true}\n disabled={!isDisabled}\n >\n <ButtonWrapper>\n <SaveButton onClick={onSubmit} disabled={isDisabled}>\n SAVE DETAILS\n </SaveButton>\n <CancelButton onClick={onCancel}>CANCEL</CancelButton>\n </ButtonWrapper>\n </Tippy>\n </Wrapper>\n );\n}\n\nfunction RadioButtonsSection() {\n const [flagById] = useFlagById();\n const [taskPayload, setPayload] = useUpdateTask();\n const [, setNewValue] = useState<boolean | string>(false);\n\n useEffect(() => {\n const defaultSelectedValue = flagById?.is_private ? false : true;\n setPayload({\n ...taskPayload,\n is_private: defaultSelectedValue,\n });\n }, [flagById?.is_private]);\n\n const handleRadioButtonChange = (event: any) => {\n const value = event.target.value;\n\n let booleanValue: boolean;\n if (value === 'private') {\n booleanValue = true;\n } else {\n booleanValue = false;\n }\n\n setNewValue(value);\n setPayload({\n ...taskPayload,\n is_private: booleanValue,\n });\n };\n\n return (\n <DropDowns>\n <RadioButtonGroup\n selectedValue={taskPayload?.is_private == false ? 'public' : 'private'}\n options={FlagsFilter}\n onChange={handleRadioButtonChange}\n heading={''}\n required={false}\n />\n </DropDowns>\n );\n}\n\nconst ButtonWrapper = styled.div`\n display: flex;\n gap: 15px;\n margin-right: 15px;\n`;\n\nconst SaveButton = styled(Button)``;\n\nconst CancelButton = styled(Button)`\n background-color: white;\n color: #3a3630;\n`;\n\nconst DropDowns = styled.div`\n display: flex;\n gap: 25px;\n`;\n\nconst TooltipContent = styled.div`\n background-color: #333;\n color: #fff;\n padding: 5px 10px;\n border-radius: 5px;\n`;\n\nconst Wrapper = styled.div``;\n\nexport { SaveDetails, RadioButtonsSection };\n","import React from 'react';\nimport styled from 'styled-components';\nimport { Label } from '@bjsdistribution/dms-component-library';\nimport { useFlagById } from '../order-actions/store';\n\nfunction DetailSection() {\n const [flagById] = useFlagById();\n\n let orderColumnData =\n flagById?.order_data?.order_recipient?.recipient_name?.toUpperCase() +\n ', ' +\n flagById?.order_data?.order_recipient?.postcode;\n\n return (\n <Detail>\n <Flex>\n <StyledLabel label=\"Reference\" />\n <Ref>{flagById?.id}</Ref>\n </Flex>\n <Flex>\n <StyledLabel label=\"Order\" />\n <Order>{orderColumnData}</Order>\n </Flex>\n </Detail>\n );\n}\n\nconst Detail = styled.div`\n display: flex;\n align-items: center;\n gap: 40%;\n flex-wrap: wrap;\n`;\n\nconst Flex = styled.div`\n margin-top: 20px;\n`;\nconst Ref = styled.div`\n color: #7b7874;\n font-family: 'Lato', sans-serif;\n`;\nconst Order = styled.div`\n color: #7b7874;\n text-decoration: underline;\n font-family: 'Lato', sans-serif;\n`;\nconst StyledLabel = styled(Label)`\n margin-right: 10px;\n font-weight: bold;\n`;\n\nexport default DetailSection;\n","import React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n BackgroundModal,\n useApiHook,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport HeaderSection from './Header';\nimport TextSection from './TextSection';\nimport ButtonsSection from './Dropdowns';\nimport { RadioButtonsSection, SaveDetails } from './Actions';\nimport {\n // useTasksData,\n useStaticData,\n useFlagById,\n useFlagRefId,\n useTasksData,\n useUpdateTask,\n} from '../order-actions/store';\nimport DetailSection from './DetailSection';\nimport { allTypes } from '../order-actions/types';\nimport { useOrderId } from '../store';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: allTypes[];\n}\n\nfunction ViewFlag() {\n const [, setStaticData] = useStaticData();\n const [flagById, setFlagById] = useFlagById();\n const [taskPayload, setTaskPayload] = useUpdateTask();\n const [selectedFlagId] = useFlagRefId();\n const [orderId] = useOrderId();\n const [, setTasksData] = useTasksData();\n\n //single flag data\n const { data: flagDataById, fetchData: fetchedFlagById, loading } = useAxios<\n ApiResponse\n >({\n endpoint: `/v1/task/${selectedFlagId}`,\n method: 'GET',\n });\n\n // API Call\n const { data: fetchedStaticData } = useApiHook<ApiResponse>({\n endpoint: `/v1/task/getStaticData/all/`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (fetchedStaticData) {\n setStaticData(fetchedStaticData?.data);\n }\n }, [fetchedStaticData]);\n\n //Unresolved API\n const { fetchData: callUnresolvedTaskApi } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [{ field: 'order_id', op: '=', value: orderId }],\n });\n\n useEffect(() => {\n if (selectedFlagId) {\n fetchedFlagById();\n }\n }, [selectedFlagId]);\n\n useEffect(() => {\n if (flagDataById && flagDataById?.data) {\n setFlagById(flagDataById?.data[0]);\n }\n }, [loading]);\n\n useEffect(() => {\n if (flagById) {\n setTaskPayload({\n ...taskPayload,\n flag_type: flagById?.task_type_id,\n description: flagById?.description,\n priority: flagById?.task_priority_id,\n id: flagById?.id,\n is_private: flagById?.is_private,\n });\n }\n }, [flagById]);\n\n return (\n <>\n {\n <BackgroundModals>\n <MainContainer>\n <HeaderSection\n callUnresolvedTaskApi={callUnresolvedTaskApi}\n setTasksData={setTasksData}\n />\n <DetailSection />\n <TextSection />\n <ButtonsSection />\n <SectionsContainer>\n <SaveDetails\n callUnresolvedTaskApi={callUnresolvedTaskApi}\n setTasksData={setTasksData}\n />\n <RadioButtonsSection />\n </SectionsContainer>\n </MainContainer>\n </BackgroundModals>\n }\n </>\n );\n}\n\nconst SectionsContainer = styled.div`\n display: flex;\n align-items: center;\n margin-top: 6%;\n`;\n\nconst BackgroundModals = styled(BackgroundModal)`\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(1px);\n`;\n\nconst MainContainer = styled.div`\n padding: 24px;\n border-radius: 12px;\n background: #ffffff;\n box-shadow: 0px 20px 24px -4px #10182814;\n width: 80%;\n max-width: 50%;\n margin: 0 auto;\n @media (max-width: 1024px) {\n max-width: 80%;\n }\n`;\n\nexport default ViewFlag;\n","// import { Alert } from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useCurrentAction, useLiveRecalling, useOrderId } from '../../../store';\nimport {\n CancelAndCompleteAction,\n CancelationModal,\n useApiHook,\n} from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../../types';\nimport { notification } from 'antd';\n\nfunction ReleaseOrder() {\n const [orderId] = useOrderId();\n const [, setCurrentAction] = useCurrentAction();\n const [, setRecalling] = useLiveRecalling();\n\n const {\n data: response,\n setShouldPerformAction: setPerformAction,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/released/`,\n method: 'POST',\n performAction: false,\n });\n\n useEffect(() => {\n if (response && response?.data) {\n notification.success({\n message: 'Success',\n //@ts-ignore\n description: response?.message || 'Successfully updated',\n });\n setCurrentAction(undefined);\n setRecalling(true);\n setTimeout(() => {\n setRecalling(false);\n }, 1000);\n }\n if (response?.data === null) {\n notification.error({\n message: 'Error',\n description:\n //@ts-ignore\n response?.error_traceback ||\n 'An error has occurred. Please try again later.',\n });\n setCurrentAction(undefined);\n }\n }, [response]);\n\n const saveButton = () => {\n setRecalling(false);\n if (orderId) {\n setPerformAction(true);\n }\n };\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n\n // <ReleaseContainer>\n // <Alert\n // type=\"info\"\n // title=\"Release\"\n // description=\"Order Already Released\"\n // onClose={() => alert(onClose())}\n // showCloseIcon={true} // Show or hide the close icon\n // showOkButton={true} // Show or hide the OK button\n // styleAlert=\"rounded\" // Set the style variant of the alert\n // />\n // </ReleaseContainer>\n return (\n <CancelationModal\n title=\"Release Order\"\n description=\"Are you sure, you want to release the Order?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={closeModal}\n completeLabel=\"Confirm\"\n onComplete={saveButton}\n />\n }\n />\n );\n}\n\n// const ReleaseContainer = styled.div`\n// top: -114px;\n// right: 81px;\n// opacity: 1;\n// overflow: unset;\n// color: inherit;\n// pointer-events: auto;\n// position: absolute;\n// transform: translate3d(57px, 308px, 0px) scaleX(1);\n// `;\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nexport default ReleaseOrder;\n","import {\n CancelAndCompleteAction,\n CancelationModal,\n useApiHook,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n useCurrentAction,\n useLiveRecalling,\n useOrderDetails,\n useOrderId,\n usePrevOrderDetails,\n} from '../../../store';\nimport { ApiResponse, OrdersType } from '../../../types';\nimport { useLoading } from '../../../../order-daily-overview/store/store';\nimport { notification } from 'antd';\n\ninterface IProps {\n callOrderAlertsApi: any;\n}\n\nconst ClearBookingStatus = (props: IProps) => {\n const [orderId] = useOrderId();\n const [, setOrderDetails] = useOrderDetails();\n const [, setPrevOrderDetails] = usePrevOrderDetails();\n const [, setLoading] = useLoading();\n const [, setCurrentAction] = useCurrentAction();\n const [liveRecalling, setRecalling] = useLiveRecalling();\n\n const {\n data: response,\n setShouldPerformAction: setPerformAction,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `orders/${orderId}/clear-date/`,\n method: 'POST',\n performAction: false,\n });\n const { data: fetchedData, loading, setShouldPerformAction } = useApiHook<{\n data: OrdersType[];\n }>({\n endpoint: `orders/${orderId}`,\n method: 'GET',\n performAction: false,\n });\n const callOrdersApi = async () => {\n await props?.callOrderAlertsApi();\n };\n useEffect(() => {\n setLoading(loading);\n if (fetchedData && fetchedData?.data) {\n const requiredData = fetchedData?.data;\n setOrderDetails(requiredData[0]);\n setPrevOrderDetails(requiredData[0]);\n callOrdersApi();\n setCurrentAction(undefined);\n }\n if (\n (fetchedData && fetchedData?.data === null) ||\n fetchedData?.data?.length === 0\n ) {\n setCurrentAction(undefined);\n }\n }, [loading]);\n\n useEffect(() => {\n if (response) {\n //@ts-ignore\n if (response?.data && response?.code === 200) {\n setShouldPerformAction(true);\n setRecalling(true);\n setTimeout(() => {\n setRecalling(false);\n }, 2000);\n } else {\n notification.error({\n message: 'Error',\n description:\n //@ts-ignore\n response?.error_traceback ||\n 'An error has occurred. Please try again later.',\n });\n setCurrentAction(undefined);\n }\n }\n }, [response, liveRecalling]);\n\n const saveButton = () => {\n if (orderId) {\n setRecalling(false);\n setPerformAction(true);\n }\n };\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n return (\n <CancelationModal\n title=\"Clear Booking Status\"\n description=\"Are you sure, you want to clear booking status of the Order?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={closeModal}\n completeLabel=\"Confirm\"\n onComplete={saveButton}\n />\n }\n />\n );\n};\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nexport default ClearBookingStatus;\n","import React from 'react';\nimport { useCancelOrderProducts, useOrderStaticData } from '../../../store';\nimport { useLoading } from '../../../../order-daily-overview/store/store';\nimport { Empty, Select, Skeleton } from 'antd';\nimport { CancelOrderProductsType } from '../../../types';\nimport OrderActionsDropdown from '../../Dropdown';\nimport styled from 'styled-components';\nimport { EmptyDataContainer } from '../confirm-order/tables/ReminderStyles';\nimport DeliverProductIcon from '../../../../../assets/icons/DeliverProductIcon';\nimport ReturnProductIcon from '../../../../../assets/icons/ReturnProductIcon';\n\nconst deliverTypeOptions = [\n {\n label: 'Deliver',\n value: 'deliver',\n icon: <DeliverProductIcon />,\n },\n {\n label: 'Return',\n value: 'return',\n icon: <ReturnProductIcon />,\n },\n];\n\nconst collectTypeOptions = [\n {\n label: 'Return',\n value: 'return',\n icon: <ReturnProductIcon />,\n },\n];\n\nconst UnCancelOrderTable = () => {\n const [\n cancelOrderProducts,\n setCancelOrderProducts,\n ] = useCancelOrderProducts();\n\n const [loading] = useLoading();\n const [orderStaticData] = useOrderStaticData();\n\n if (!cancelOrderProducts?.length) {\n return null;\n }\n\n const returnReasonsOptions = orderStaticData?.return_reasons?.map(\n (option: any) => ({\n label: option?.reason,\n value: option?.reason,\n })\n );\n\n const returnActionOptions = orderStaticData?.order_product_return_action?.map(\n (option: any) => ({\n label: option?.value,\n value: option?.value,\n })\n );\n\n const onChange = (\n selectedVal: string,\n id: number,\n type: keyof CancelOrderProductsType\n ) => {\n console.log(selectedVal, id, type);\n const updatedList = cancelOrderProducts?.map(\n (item: CancelOrderProductsType) => {\n const newItem =\n item.order_product_id === id\n ? {\n ...item,\n [type]: selectedVal,\n }\n : item;\n return newItem;\n }\n );\n setCancelOrderProducts(updatedList);\n };\n\n return (\n <div>\n <StyledTableWrapper>\n <StyledTable className=\"scrollClass\">\n <thead>\n <tr>\n <th>Status</th>\n <th>Original Type</th>\n <th>Code</th>\n <th>Description</th>\n <th>SKU</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={5}>\n <Skeleton active />\n </td>\n </tr>\n ) : cancelOrderProducts?.length === 0 ? (\n <tr>\n <td className=\"emptyTd\" colSpan={5}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n cancelOrderProducts?.map((product: CancelOrderProductsType) => {\n const dropdownOptions =\n product?.product_type === 'deliver'\n ? deliverTypeOptions\n : collectTypeOptions;\n\n const isReturn = product?.action === 'return';\n\n return (\n <tr\n key={product?.order_product_id}\n style={{\n boxShadow: '0px 1px 3px 0px rgba(16, 24, 40, 0.1)',\n }}\n >\n <td colSpan={5}>\n <table style={{ width: '100%' }}>\n <tbody>\n <tr>\n <td style={{ width: '20%' }}>\n <CustomSelectDropdown\n options={dropdownOptions}\n placeholder=\"Select\"\n onChange={(val: any) =>\n onChange(\n val,\n product?.order_product_id!,\n 'action'\n )\n }\n prefix={\n product?.action === 'deliver' ? (\n <DeliverProductIcon />\n ) : product?.action === 'return' ? (\n <ReturnProductIcon />\n ) : (\n <></>\n )\n }\n style={{ width: '100%' }}\n // popupClassName={'dropDownStyle'}\n // selectWrapperClass={'rounded'}\n value={dropdownOptions?.filter(\n (item: any) => item?.value === product?.action\n )}\n optionRender={(option: any) => (\n <div\n style={{\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n }}\n >\n <span\n style={{ display: 'flex' }}\n aria-label={option.data.label}\n >\n {option.data.icon}\n </span>\n <span style={{ color: '#8D8F90' }}>\n {option.data.label}\n </span>\n </div>\n )}\n />\n </td>\n <td style={{ width: '20%' }}>\n {product?.previous_product_type === null\n ? 'N/A'\n : product?.previous_product_type}\n </td>\n <td style={{ width: '20%' }}>{product?.code}</td>\n <td style={{ width: '20%' }}>\n {product?.description}\n </td>\n <td style={{ width: '20%' }}>{product?.sku}</td>\n </tr>\n\n {isReturn && (\n <tr>\n <td colSpan={5}>\n <ReturnRowWrapper>\n <StyledDropdown\n label=\"Return Action\"\n required\n placeholder=\"Select action\"\n options={returnActionOptions}\n onSelect={(val: any) =>\n onChange(\n val,\n product?.order_product_id!,\n 'return_action'\n )\n }\n value={returnActionOptions?.filter(\n (option: any) =>\n option.value === product?.return_action\n )}\n />\n <StyledDropdown\n label=\"Return Reason\"\n required\n placeholder=\"Select reason\"\n options={returnReasonsOptions}\n onSelect={(val: any) =>\n onChange(\n val,\n product?.order_product_id!,\n 'return_reason'\n )\n }\n value={returnReasonsOptions?.filter(\n (option: any) =>\n option.value === product?.return_reason\n )}\n />\n </ReturnRowWrapper>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </td>\n </tr>\n );\n })\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </div>\n );\n};\n\nconst CustomSelectDropdown: any = styled(Select)`\n .ant-select-selector {\n border-radius: 25px !important;\n /* border: none !important; */\n min-width: 100px;\n padding: 0 10px;\n display: flex;\n gap: 8px;\n align-items: center !important;\n\n .ant-select-prefix {\n margin-top: 4px;\n }\n }\n .ant-select-selection-item {\n font-weight: 400;\n font-size: 13px;\n }\n`;\n\nexport const StyledTableWrapper = styled.div`\n width: 100%;\n overflow-x: auto;\n background-color: #fff;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);\n padding: 16px;\n`;\n\nconst StyledDropdown = styled(OrderActionsDropdown)`\n flex: 1;\n`;\n\nexport const StyledTable = styled.table`\n width: 100%;\n font-size: 14px;\n color: #333;\n border-spacing: 0 10px;\n\n th,\n td {\n padding: 12px 16px;\n background: #fff;\n }\n\n th {\n background: #f0f2f2;\n\n &:first-child {\n border-top-left-radius: 40px;\n border-bottom-left-radius: 40px;\n }\n\n &:last-child {\n border-top-right-radius: 40px;\n border-bottom-right-radius: 40px;\n }\n }\n\n // This affects ONLY top-level rows\n > tbody > tr {\n background: #fff;\n border-radius: 40px;\n box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1);\n }\n\n // Round the outer row's corners only on first/last td\n > tbody > tr > td:first-child {\n border-top-left-radius: 40px;\n border-bottom-left-radius: 40px;\n }\n\n > tbody > tr > td:last-child {\n border-top-right-radius: 40px;\n border-bottom-right-radius: 40px;\n }\n\n .scrollClass {\n overflow-x: auto;\n }\n\n .emptyTd {\n text-align: center;\n padding: 40px 0;\n color: #999;\n background: transparent;\n box-shadow: none;\n }\n\n td table {\n border-spacing: 0;\n width: 100%;\n }\n\n td table td {\n background: transparent;\n padding: 8px 12px;\n }\n`;\n\nconst ReturnRowWrapper = styled.div`\n display: flex;\n flex-direction: row;\n gap: 12px;\n padding: 0 12px;\n width: 100%;\n`;\n\nexport default UnCancelOrderTable;\n","import React, { useEffect, useState } from 'react';\nimport { TextArea, useAxios } from '@bjsdistribution/dms-component-library';\nimport {\n useCancelOrderProducts,\n useCurrentAction,\n useCustomerInfo,\n useOrderId,\n useOrderStaticData,\n useProductDetails,\n} from '../../../store';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport { HoldRow, Label } from '../modalstyle';\nimport { ApiResponse, CancelOrderProductsType } from '../../../types';\nimport styled from 'styled-components';\nimport { notification } from 'antd';\nimport OrderActionsDropdown from '../../Dropdown';\nimport UnCancelOrderTable from './UncancelOrderTable';\n\ninterface IProps {\n callOrdersApi: any;\n callOrderStatusApi: any;\n callOrderAlertsApi: any;\n callOrderProductsApi: any;\n}\n\nfunction UncancelOrder(props: IProps) {\n const [orderId] = useOrderId();\n const [, setCurrentAction] = useCurrentAction();\n\n const onClose = () => {\n setCurrentAction(undefined);\n };\n\n const [orderStaticData] = useOrderStaticData();\n const [unCancelReason, setUncancelReason] = useState<string | undefined>(\n undefined\n );\n const [unCancelNotes, setUncancelNotes] = useState<string>('');\n const [customerInfo] = useCustomerInfo();\n const [\n cancelOrderProducts,\n setCancelOrderProducts,\n ] = useCancelOrderProducts();\n const [orderProductDetails] = useProductDetails();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n\n const unCancelReasonOptions = orderStaticData?.uncancel_reasons?.map(\n (item: any) => {\n return {\n label: item?.reason,\n value: item?.reason,\n };\n }\n );\n\n const { fetchData: performUnCancelAction } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/uncancel/?order_id=${orderId}`,\n method: 'POST',\n });\n\n useEffect(() => {\n const receivedProducts = orderProductDetails?.filter(\n (product: any) =>\n product?.status_value === 'received' &&\n product?.order_product_type?.type !== 'return'\n );\n const modifiedReceivedProducts =\n receivedProducts?.length > 0\n ? receivedProducts?.map((product: any) => {\n return {\n order_product_id: product?.id,\n action: '',\n return_action: '',\n return_reason: '',\n code: product?.code,\n description: product?.description,\n sku: product?.sku,\n product_type: product?.order_product_type?.type,\n previous_product_type: product?.previous_order_product_type,\n };\n })\n : [];\n setCancelOrderProducts(modifiedReceivedProducts);\n }, [orderProductDetails]);\n\n const onChange = (event: any) => {\n setUncancelNotes(event.target.value);\n };\n\n const onChangeUnCancelReason = (value: string) => {\n setUncancelReason(value);\n };\n\n const onSubmit = async () => {\n const productsPayload = cancelOrderProducts?.map(\n (product: CancelOrderProductsType) => {\n if (product?.action === 'deliver') {\n return {\n order_product_id: product?.order_product_id,\n action: product?.action,\n };\n }\n return {\n order_product_id: product?.order_product_id,\n action: product?.action,\n return_action: product?.return_action,\n return_reason: product?.return_reason,\n };\n }\n );\n\n // VALIDATIONS START\n\n const productsPayloadActions = productsPayload?.map(\n (product: CancelOrderProductsType) => {\n if (product?.action !== '') {\n return true;\n }\n return false;\n }\n );\n\n if (productsPayloadActions?.includes(false)) {\n notification.error({\n message: 'Error',\n description: `please fill product status field`,\n });\n return;\n }\n\n const productsPayloadValidate = productsPayload?.map(\n (product: CancelOrderProductsType) => {\n if (product?.action === 'return') {\n return product?.return_action !== '' && product?.return_reason !== '';\n }\n return true;\n }\n );\n\n if (productsPayloadValidate?.includes(false)) {\n notification.error({\n message: 'Error',\n description: `please fill all the mandatory fields`,\n });\n return;\n }\n\n // VALIDATIONS END\n\n const apiPayload = {\n uncancelled_reason: unCancelReason,\n uncancelled_notes: unCancelNotes,\n products: productsPayload,\n };\n\n if (orderId) {\n const response = (await performUnCancelAction({\n payload: apiPayload,\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (response?.code === 200) {\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n // call orders api to update status\n await props?.callOrderProductsApi();\n await props?.callOrderAlertsApi();\n await props?.callOrderStatusApi();\n await props?.callOrdersApi();\n }\n if (response?.code !== 200) {\n notification.error({\n message: 'Error',\n description: `${response.error}`,\n });\n setCurrentAction(undefined);\n }\n }\n };\n\n const showSubmitBtn =\n unCancelReason !== undefined && unCancelNotes?.length > 0;\n\n return (\n <OrderActionModal\n headerTitle=\"Un-Cancel order\"\n onCloseHeader={onClose}\n onSubmit={onSubmit}\n showAdditionalInfo\n infoText={infoText}\n submitBtnTitle=\"Save Details\"\n isSubmitDisabled={!showSubmitBtn}\n >\n <MainContainer>\n <Container>\n <OrderActionsDropdown\n required\n label=\"Un-cancel Reason\"\n placeholder=\"Select un-cancel Reason\"\n options={unCancelReasonOptions || []}\n onSelect={onChangeUnCancelReason}\n value={unCancelReason}\n className=\"uncancelReasonDropdown\"\n />\n <HoldRow>\n <div style={{ display: 'flex', flexDirection: 'row' }}>\n <Label>Un-cancel Note</Label>{' '}\n <RequiredAsterisk>*</RequiredAsterisk>\n </div>\n <CustomTextArea rows={5} onChange={onChange} />\n </HoldRow>\n </Container>\n <UnCancelOrderTable />\n </MainContainer>\n </OrderActionModal>\n );\n}\n\nconst RequiredAsterisk = styled.span`\n color: red;\n margin-left: 2px;\n font-size: x-small;\n`;\n\nconst Container = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 15px;\n gap: 30px;\n border-radius: 16px;\n border: 1px solid#edebe8;\n background: #f8fafc;\n\n .uncancelReasonDropdown {\n flex: 1;\n }\n`;\n\nconst MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n padding: 20px;\n gap: 10px;\n`;\n\nconst CustomTextArea = styled(TextArea)`\n width: 346px;\n`;\n\nexport default UncancelOrder;\n","// import { Alert } from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n CancelAndCompleteAction,\n CancelationModal,\n useApiHook,\n} from '@bjsdistribution/dms-component-library';\nimport { ApiResponse } from '../../../types';\nimport {\n useCurrentAction,\n useGlobalStateHitAuditLog,\n useLiveRecalling,\n useOrderId,\n} from '../../../store';\nimport { notification } from 'antd';\n\nfunction RemoveFromRoute(props: any) {\n const [orderId] = useOrderId();\n const [, setCurrentAction] = useCurrentAction();\n const [, setRecalling] = useLiveRecalling();\n const [, setRecallAuditLog] = useGlobalStateHitAuditLog();\n\n const callOrdersApi = async () => {\n await props?.callOrderAlertsApi();\n };\n\n const { data: response, setShouldPerformAction: setAction } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/${orderId}/remove_from_route/`,\n method: 'POST',\n performAction: false,\n });\n\n useEffect(() => {\n if (response && response?.data) {\n notification.success({\n message: 'Success',\n description:\n //@ts-ignore\n response?.message || 'Order has been removed successfully',\n });\n callOrdersApi();\n setRecalling(true);\n setRecallAuditLog(true);\n setCurrentAction(undefined);\n }\n if (response?.data === null) {\n notification.error({\n message: 'Error',\n description:\n //@ts-ignore\n response?.error_traceback ||\n 'An error has occurred. Please try again later.',\n });\n setCurrentAction(undefined);\n }\n }, [response]);\n\n const saveButton = () => {\n if (orderId) {\n setAction(true);\n }\n\n setTimeout(() => {\n setRecalling(false);\n setRecallAuditLog(false);\n }, 2000);\n };\n\n const closeModal = () => {\n setCurrentAction(undefined);\n };\n\n return (\n <CancelationModal\n title=\"Remove from Route\"\n description=\"Are you sure, you want to remove Order from the route?\"\n actions={\n <CustomCancelAndCompleteAction\n cancelLabel=\"Cancel\"\n onCancel={closeModal}\n completeLabel=\"Confirm\"\n onComplete={saveButton}\n />\n }\n />\n );\n}\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nexport default RemoveFromRoute;\n","import styled from 'styled-components';\nimport { TextArea } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport { Select } from 'antd';\n\n// Shared styles and components\nexport const Wrapper = styled.div`\n display: flex;\n gap: 15px;\n`;\n\nexport const StyledTextArea = styled(TextArea)`\n display: flex;\n padding: 12px;\n align-items: flex-start;\n gap: 4px;\n align-self: stretch;\n border-radius: 10px;\n border: 1px solid var(--Neutral-Gray-Gray-100, #e0e2e7);\n background: var(--Flowkit-White, #fff);\n resize: none;\n height: 35%;\n`;\n\nexport const SplitContainer = styled.div`\n /* width: 95%; */\n min-width: 25vw;\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nexport const StyledAntSelect = styled(Select)`\n .ant-select-selector {\n /* width: 22vw; */\n border-radius: 22px;\n }\n`;\n\nexport const Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-weight: 500;\n`;\n\nexport const DatePickerWrap = styled.div`\n position: relative;\n border-radius: 66px;\n border: 1px solid #e0e2e7;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.05);\n\n input[type='text'] {\n border-radius: 20px;\n background: #fff;\n border: none;\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n padding: 10px 0;\n padding-left: 33px;\n min-width: 18vw;\n\n &:focus-visible {\n outline: none;\n }\n }\n\n svg {\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n`;\n\nexport const ContentContainer = styled.div`\n display: flex;\n padding: 12px 12px;\n margin: 5px 14px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 15px;\n background: #f8fafc;\n border-radius: 15px;\n`;\n\nexport const Row = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nexport const DoubleDropdownContainer = styled.div`\n display: flex;\n gap: 10px;\n width: 100%;\n`;\n\n// FormRow component\ninterface FormRowProps {\n label: string;\n children: React.ReactNode;\n required?: boolean;\n}\n\nexport const FormRow: React.FC<FormRowProps> = ({\n label,\n children,\n required = false,\n}) => (\n <Row>\n <Label>\n {label}\n {required && <span style={{ color: 'red', fontSize: '20px' }}> * </span>}\n </Label>\n {children}\n </Row>\n);\n","import React from 'react';\n\nfunction RadioButtonCheckIcon(props: any) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <g clip-path=\"url(#clip0_3445_118732)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0.875 8C0.875 6.01088 1.66518 4.10322 3.0717 2.6967C4.47822 1.29018 6.38588 0.5 8.375 0.5C10.3641 0.5 12.2718 1.29018 13.6783 2.6967C15.0848 4.10322 15.875 6.01088 15.875 8C15.875 9.98912 15.0848 11.8968 13.6783 13.3033C12.2718 14.7098 10.3641 15.5 8.375 15.5C6.38588 15.5 4.47822 14.7098 3.0717 13.3033C1.66518 11.8968 0.875 9.98912 0.875 8ZM7.947 11.21L12.265 5.812L11.485 5.188L7.803 9.789L5.195 7.616L4.555 8.384L7.947 11.21Z\"\n fill={props.color || '#6396E5'}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3445_118732\">\n <rect\n width=\"15\"\n height=\"15\"\n fill=\"white\"\n transform=\"translate(0.875 0.5)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nexport default RadioButtonCheckIcon;\n","import React from 'react';\nimport styled from 'styled-components';\nimport RadioButtonCheckIcon from '../../assets/icons/RadioButtonCheckIcon';\nimport { RadioInputProps, fonts } from './types';\n\nfunction RadioButton(props: RadioInputProps) {\n return (\n <RadioContainer>\n {props.checked && <RadioButtonCheckIcon color={props.color} />}\n <Input className=\"appearance\" type=\"radio\" {...props} />\n <Label htmlFor={props.id}>{props.label}</Label>\n </RadioContainer>\n );\n}\n\nconst Label = styled.label`\n cursor: pointer;\n font-size: 14px;\n font-weight: 400;\n font-family: ${fonts.secondary};\n color: #aea9a1;\n white-space: nowrap;\n`;\n\nconst Input = styled.input<{ color?: string }>`\n appearance: none;\n margin: 0;\n width: 16px;\n height: 16px;\n border: 1px solid #aea9a1;\n border-radius: 14px;\n cursor: pointer;\n\n &:checked {\n & + ${Label} {\n color: ${props => props.color || '#6396e5'};\n }\n display: none;\n }\n\n &::after {\n content: '';\n display: block;\n border-radius: 14px;\n width: 12px;\n height: 12px;\n margin: 2px;\n }\n\n &:checked::after {\n background-color: ${props => props.color || '#6396e5'};\n }\n`;\n\nconst RadioContainer = styled.div`\n display: flex;\n gap: 5px;\n align-items: center;\n`;\n\nexport default RadioButton;\n","import React from 'react';\nimport styled, { css } from 'styled-components';\n// import { StandardOptionsType } from '@bjsdistribution/dms-component-library';\nimport RadioButton from './RadioButton';\nimport {\n DirectionType,\n RadioButtonGroupProps,\n RequiredTextProps,\n fonts,\n} from './types';\n\ntype StandardOptionsType = {\n label: string;\n value: any;\n color?: string;\n};\n\nfunction RadioButtonGroup(props: RadioButtonGroupProps) {\n const {\n heading,\n direction = 'horizontal',\n required = true,\n options,\n onChange,\n } = props;\n\n function renderOptions() {\n return options?.map((option: StandardOptionsType, index: number) => {\n const { label, value, color } = option;\n const shortenedOptionLabel = label?.replace(/\\s+/g, '');\n const optionId = `radio-option-${shortenedOptionLabel}`;\n\n return (\n <>\n <RadioButton\n value={value}\n label={label}\n key={optionId}\n id={optionId}\n name={heading.replace(/ /g, '-').toLowerCase()}\n checked={props.selectedValue == value}\n onChange={onChange}\n color={color}\n />\n {options.length - 1 !== index && <Separator />}\n </>\n );\n });\n }\n return (\n <Fieldset>\n <LegendContainer>\n <Legend>{heading}</Legend>\n {required && (\n <RequiredText $required={required || false}>*</RequiredText>\n )}\n </LegendContainer>\n <Wrapper $direction={direction} className=\"custom-wrapper\">\n {renderOptions()}\n </Wrapper>\n </Fieldset>\n );\n}\n\nconst Separator = styled.div`\n width: 1px;\n background: #e0e2e7;\n`;\n\nconst labelStyles = css`\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n font-family: ${fonts.secondary};\n line-height: 20px;\n`;\n\nconst RequiredText = styled.span<RequiredTextProps>`\n ${props => !props.$required && 'visibility: hidden;'}\n ${labelStyles}\n`;\n\nconst LegendContainer = styled.div`\n display: flex;\n`;\n\nconst Legend = styled.legend`\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n font-family: ${fonts.secondary};\n line-height: 20px;\n`;\n\nconst Fieldset = styled.fieldset`\n border: none;\n padding: 0px;\n`;\n\nconst Wrapper = styled.div<{ $direction: DirectionType }>`\n display: flex;\n flex-direction: ${props =>\n props.$direction === 'horizontal' ? 'row' : 'column'};\n gap: 20px;\n padding: 0px 10px;\n border-radius: 15px;\n border: 1px solid #e0e2e7;\n background: #fff;\n height: 30px;\n justify-content: space-evenly;\n`;\n\nexport default RadioButtonGroup;\n","import React, { useEffect, useState } from 'react';\nimport {\n useCreateReminderPayload,\n useDeptData,\n useStaticData,\n} from '../../store';\nimport { priorityData } from '../../utils';\nimport {\n DoubleDropdownContainer,\n FormRow,\n SplitContainer,\n Wrapper,\n} from './SharedComponents';\nimport { DatePickerWrap } from '../modalstyle';\nimport RadioButtonGroup from '../../../../../common/radio-group/RadioButtonGroup';\nimport styled from 'styled-components';\nimport { TextArea, useAxios } from '@bjsdistribution/dms-component-library';\nimport { DatePicker, notification, Select } from 'antd';\nimport dayjs from 'dayjs';\nimport { isValid } from 'date-fns';\nimport utc from 'dayjs/plugin/utc';\nimport { ApiResponse } from '../../../types';\ndayjs.extend(utc);\ndayjs.extend(isValid);\n\nfunction CreateReminderModal() {\n const [selectedPriority, setPriority] = useState(null);\n const [reminderPayload, setReminderPayload] = useCreateReminderPayload();\n const [displayDate, setDisplayDate] = useState<Date | null>();\n const [staticData] = useStaticData();\n const [departmentData, setDepartmentData] = useDeptData();\n const [selectedDeptId, setSelectedDeptId] = useState<string[]>([]);\n const [allUsers, setAllUsers] = useState<\n {\n fName: string;\n lName: string;\n id: string;\n username: string;\n deptId: number | null;\n }[]\n >([]);\n const [filteredUsers, setFilteredUsers] = useState<typeof allUsers>([]);\n\n const handleSelectUser = (value: string[]) => {\n setReminderPayload((prevState: any) => ({\n ...prevState,\n assigned_to: value,\n }));\n };\n\n const deptData =\n departmentData?.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n })) || [];\n\n const getPriorityOptions = (staticData: any) => {\n return staticData?.[0]?.priorities?.map((option: any) => {\n const colorMatch = priorityData?.find(p => p.id === option.id);\n return {\n label: option?.name,\n value: option?.id,\n color: colorMatch?.color || '#ccc',\n };\n });\n };\n const priorityOptions = getPriorityOptions(staticData);\n\n const handleDepartmentChange = (\n values: string[],\n options: { label: string }[]\n ) => {\n setSelectedDeptId(values);\n\n if (reminderPayload && reminderPayload?.assigned_to!?.length > 0) {\n const matchedUsers = allUsers?.filter(\n user => user?.deptId !== null && values?.includes(String(user?.deptId))\n );\n\n const filteredAssignedTo = reminderPayload?.assigned_to?.filter(\n (id: any) => matchedUsers?.some(user => user.id === id)\n );\n\n setReminderPayload((prev: any) => ({\n ...prev,\n assigned_to: filteredAssignedTo,\n }));\n }\n\n const deptLabels = options?.map(opt => opt.label);\n\n setReminderPayload(prev => ({\n ...prev,\n department: deptLabels.join(', '),\n }));\n };\n\n const handleDateChange = (date: any | null) => {\n if (date && isValid(date?.$d)) {\n const formattedDateTime = dayjs(date).toISOString();\n setDisplayDate(date?.$d?.toISOString());\n setReminderPayload((prevState: any) => ({\n ...prevState,\n due_datetime: formattedDateTime,\n }));\n } else {\n setDisplayDate(null);\n setReminderPayload((prevState: any) => ({\n ...prevState,\n due_datetime: null,\n }));\n }\n };\n\n //handlePriority change\n const handlePriorityChange = (event: any) => {\n const newValue = event.target.value;\n setPriority(newValue);\n setReminderPayload(prevState => ({\n ...prevState,\n priority: +newValue,\n }));\n };\n\n //description change\n const handleChange = (event: any) => {\n const desc = event.target.value;\n setReminderPayload(prevState => ({\n ...prevState,\n description: desc,\n }));\n };\n\n // sso Data get\n const {\n fetchData: getSSOData,\n data: fetchData,\n loading: deptLoading,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/sso/departments/`,\n method: 'GET',\n showLoader: false,\n });\n\n useEffect(() => {\n const fetchAllSSOData = async () => {\n try {\n getSSOData();\n } catch (error) {\n console.error('Error fetching SSO data:', error);\n }\n };\n fetchAllSSOData();\n }, []);\n\n const { fetchData: getUsersData, loading: userDataLoading } = useAxios<{\n data: any;\n }>({\n endpoint: `/sso/users/`,\n method: 'GET',\n showLoader: false,\n });\n\n useEffect(() => {\n const fetchAllPages = async () => {\n try {\n let page = 0;\n let usersList: any[] = [];\n let totalPages = 1;\n\n while (page < totalPages) {\n const res = (await getUsersData({\n endPointQuery: `?page=${page}&limit=500`,\n })) as { data: any };\n\n const data = res?.data;\n\n if (data) {\n usersList = [...usersList, ...(data?.users || [])];\n totalPages = data.pages || 1;\n page += 1;\n } else {\n break;\n }\n }\n\n setAllUsers(\n usersList?.map(user => ({\n id: user?.id,\n username: user?.username,\n deptId: user?.department_id,\n fName: user?.first_names,\n lName: user?.last_name,\n // userId: user?.user_id,\n }))\n );\n } catch (error) {\n console.error('Error fetching paginated SSO data:', error);\n }\n };\n\n fetchAllPages();\n }, []);\n\n useEffect(() => {\n if (selectedDeptId !== null && allUsers?.length > 0) {\n const matchedUsers = allUsers?.filter(\n user => user?.deptId?.toString() === selectedDeptId?.toString()\n );\n setFilteredUsers(matchedUsers);\n } else {\n setFilteredUsers([]);\n }\n }, [selectedDeptId, allUsers]);\n\n useEffect(() => {\n if (fetchData && fetchData?.data) {\n const deptList =\n fetchData?.data?.map((item: any) => ({\n label: item?.name,\n value: item?.id,\n })) || [];\n setDepartmentData(deptList);\n } else {\n setDepartmentData([]);\n }\n }, [fetchData]);\n\n const userOptions =\n selectedDeptId?.length > 0\n ? filteredUsers?.map((user: any) => ({\n label: `${user.fName} ${user.lName}`,\n value: user.id,\n }))\n : [];\n\n const handleAssignToMe = () => {\n const storedUserJSON = localStorage.getItem('user_type');\n if (!storedUserJSON) return;\n\n let storedUserID: string | null = null;\n\n try {\n const parsed = JSON.parse(storedUserJSON);\n storedUserID = parsed?.user_id ?? null;\n } catch (e) {\n console.error('Failed to parse stored user_type from localStorage', e);\n return;\n }\n\n if (!storedUserID) return;\n\n const matchedUser: any = allUsers?.find(user => user?.id === storedUserID);\n\n const deptMatched =\n departmentData?.find((dept: any) => dept.value === matchedUser?.deptId)\n ?.label || null;\n\n if (!deptMatched) {\n notification.info({\n message: 'Info',\n description: `Department is not assigned to the user`,\n });\n return;\n }\n\n setReminderPayload((prevState: any) => ({\n ...prevState,\n assigned_to: [matchedUser?.id],\n department: deptMatched,\n }));\n\n if (matchedUser?.deptId) {\n setSelectedDeptId(matchedUser.deptId.toString());\n }\n };\n\n useEffect(() => {\n if (\n Array.isArray(selectedDeptId) &&\n selectedDeptId?.length > 0 &&\n allUsers?.length > 0\n ) {\n const matchedUsers = allUsers?.filter(\n user =>\n user?.deptId !== null &&\n selectedDeptId?.includes(String(user?.deptId))\n );\n const currentAssigned = (reminderPayload?.assigned_to || []) as string[];\n\n const currentAssignedUsers = allUsers?.filter(user =>\n currentAssigned?.includes(user?.id || '')\n );\n\n const mergedUsers = [...matchedUsers, ...currentAssignedUsers];\n const uniqueUsers = Array.from(\n new Map(mergedUsers?.map(u => [u?.id, u]))?.values()\n );\n\n setFilteredUsers(uniqueUsers);\n } else {\n setFilteredUsers(allUsers);\n }\n }, [selectedDeptId, allUsers]);\n\n return (\n <Wrapper>\n <SplitContainer>\n <FormRow label=\"Department\" required>\n <DoubleDropdownContainer>\n <StyledAntSelect\n options={deptData}\n style={{ width: '20vw' }}\n placeholder=\"Select Department(s)\"\n onChange={handleDepartmentChange}\n value={selectedDeptId || []}\n loading={deptLoading}\n showSearch\n mode=\"multiple\"\n />\n </DoubleDropdownContainer>\n </FormRow>\n <FormRow label=\"Assigned To\" required>\n <StyledAntSelect\n options={userOptions}\n placeholder=\"Select User\"\n onChange={handleSelectUser}\n style={{ width: 'max-content' }}\n value={reminderPayload?.assigned_to || []}\n showSearch\n mode=\"multiple\"\n loading={userDataLoading}\n filterOption={(input: string, option?: { label: string }) =>\n option?.label.toLowerCase().includes(input.toLowerCase())\n }\n />\n </FormRow>\n\n <StyledLink onClick={handleAssignToMe}>Assign to me</StyledLink>\n\n <FormRow label=\"Priority\" required>\n <RadioButtonGroup\n heading=\"\"\n options={priorityOptions}\n onChange={handlePriorityChange}\n direction=\"horizontal\"\n selectedValue={selectedPriority || 3}\n required={false}\n />\n </FormRow>\n <FormRow label=\"Due Date & Time\" required>\n <StyleContainer>\n <DatePickerWrap>\n <DatePicker\n format=\"DD/MM/YYYY HH:mm A\"\n value={displayDate ? dayjs(displayDate) : null}\n onChange={handleDateChange}\n placeholder=\"Select Date & Time\"\n showTime={{ defaultValue: dayjs('00:00', 'HH:mm') }}\n disabledDate={current =>\n current && current < dayjs().startOf('day')\n }\n disabledTime={date => {\n if (date && date.isSame(dayjs(), 'day')) {\n const currentHour = dayjs().hour();\n const currentMinute = dayjs().minute();\n return {\n disabledHours: () =>\n Array.from({ length: 24 }, (_, i) => i).filter(\n hour => hour < currentHour\n ),\n disabledMinutes: selectedHour => {\n if (selectedHour === currentHour) {\n return Array.from({ length: 60 }, (_, i) => i).filter(\n minute => minute < currentMinute\n );\n }\n return [];\n },\n };\n }\n return {};\n }}\n />\n </DatePickerWrap>\n </StyleContainer>\n </FormRow>\n </SplitContainer>\n <SplitContainer>\n <Label>\n Description{' '}\n <span style={{ color: 'red', fontSize: '20px' }}> * </span>\n </Label>\n <StyledTextArea\n placeholder=\"Add Description\"\n required\n onChange={handleChange}\n />\n </SplitContainer>\n </Wrapper>\n );\n}\n\nconst StyleContainer = styled.div`\n border-radius: 20px;\n background: var(--Flowkit-White, #fff);\n`;\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-weight: 500;\n`;\n\nexport const StyledAntSelect: any = styled(Select)`\n .ant-select-selector {\n width: 20vw;\n border-radius: 22px;\n }\n`;\n\nconst StyledTextArea = styled(TextArea)`\n display: flex;\n padding: 12px;\n align-items: flex-start;\n gap: 4px;\n align-self: stretch;\n border-radius: 10px;\n border: 1px solid var(--Neutral-Gray-Gray-100, #e0e2e7);\n background: var(--Flowkit-White, #fff);\n resize: none;\n height: 100px;\n`;\n\nconst StyledLink = styled.div`\n color: var(--contextual-blue, #6396e5);\n font-family: Lato;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n cursor: pointer;\n`;\n\nexport default CreateReminderModal;\n","import React, { useEffect, useState } from 'react';\nimport { useApiHook, useAxios } from '@bjsdistribution/dms-component-library';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport CreateReminder from './CreateReminderModal';\nimport {\n initialValue,\n useStaticData,\n useCreateReminderPayload,\n useNotiifcationLabel,\n} from '../../store';\nimport { allTypes } from '../../types';\nimport { ContentContainer } from './SharedComponents';\nimport { useCurrentAction } from '../../../store';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport styled from 'styled-components';\nimport { notification } from 'antd';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: allTypes[];\n}\ninterface IProps {\n callReminderApi: any;\n callUnresolvedTaskApi: any;\n}\nfunction ReminderModal(props: IProps) {\n const [, setCurrentAction] = useCurrentAction();\n const [createReminder, setReminderPayload] = useCreateReminderPayload();\n const [label] = useNotiifcationLabel();\n const [, setStaticData] = useStaticData();\n const [, setExtracted] = useState('');\n\n const { fetchData: createReminderAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/reminders/create/`,\n method: 'POST',\n });\n\n // API Call\n const { data: fetchedStaticData } = useApiHook<ApiResponse>({\n endpoint: `/v1/task/getStaticData/all/`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (fetchedStaticData) {\n setStaticData(fetchedStaticData?.data);\n }\n }, [fetchedStaticData]);\n\n const closeModal = () => {\n setCurrentAction(undefined);\n setReminderPayload(initialValue);\n };\n console.log(createReminder, 'createReminder');\n const handleReminderSubmit = async () => {\n try {\n const response = (await createReminderAPI({\n payload: [createReminder],\n })) as {\n code: number | null;\n message?: string;\n error?: string | null;\n error_traceback?: string;\n data?: any;\n };\n\n if (response?.code === 200 && response?.data) {\n notification.success({\n message: 'Success',\n description: response?.message || 'Reminder created successfully',\n });\n closeModal();\n await props?.callReminderApi();\n } else {\n notification.error({\n message: 'Error',\n description:\n response?.error ||\n 'Something went wrong while creating the reminder.',\n });\n }\n } catch (error) {\n const err = error as any;\n\n const errMsg =\n err?.response?.data?.error ||\n err?.response?.data?.message ||\n err?.message ||\n 'An unexpected error occurred.';\n\n notification.error({\n message: 'Request Failed',\n description: errMsg,\n });\n }\n };\n const isSubmitDisabled = () => {\n const {\n department,\n assigned_to,\n priority,\n due_datetime,\n description,\n } = createReminder;\n return (\n !department ||\n !description ||\n !due_datetime ||\n !priority ||\n assigned_to?.length === 0 ||\n !assigned_to\n );\n };\n\n useEffect(() => {\n const match = label.match(/\\(([^)]+)\\)/);\n const extractedText = match ? match[1] : '';\n setExtracted(extractedText);\n }, [label]);\n\n return (\n <>\n {/* {loading && <Loader />} */}\n <OrderModal\n headerTitle={'CREATE REMINDER'}\n onCloseHeader={closeModal}\n onSubmit={handleReminderSubmit}\n submitBtnTitle={'Save Reminder'}\n isSubmitDisabled={isSubmitDisabled()}\n footerActions={''}\n >\n <ContentContainer>{<CreateReminder />}</ContentContainer>\n </OrderModal>\n </>\n );\n}\n\nconst OrderModal = styled(OrderActionModal)`\n width: 70%;\n`;\n\nexport default ReminderModal;\n","export const obtainProductMethodData = [\n {\n label: 'Collect From Other Location',\n value: 'collect_from_other_location',\n },\n {\n label: 'Collect From Customer',\n value: 'collect_from_customer',\n },\n {\n label: 'Collect From Supplier',\n value: 'collect_from_supplier',\n },\n {\n label: 'Already Collected',\n value: 'already_collected',\n },\n {\n label: 'Customer Delivering into Depot',\n value: 'customer_delivering_into_depot',\n },\n {\n label: 'Supplier Delivering into Depot',\n value: 'supplier_delivering_into_depot',\n },\n {\n label: 'Pick From Internal stock',\n value: 'pick_from_internal_stock',\n },\n {\n label: 'Full Stock Control',\n value: 'full_stock_control',\n },\n];\nexport const options = [\n {\n label: 'Task',\n value: 'task',\n selectedBackgroundColor: '#F0F2F2',\n selectedFontColor: '#3a3630',\n },\n {\n label: 'Reminder',\n value: 'reminder',\n selectedBackgroundColor: 'white',\n selectedFontColor: '#3a3630',\n },\n];\nexport const ReturnData = [\n {\n label: 'Return1',\n value: 'return1',\n },\n {\n label: 'Return2',\n value: 'return2',\n },\n {\n label: 'Return3',\n value: 'return3',\n },\n];\nexport const CollectionData = [\n {\n label: 'Test1',\n value: 'test1',\n },\n {\n label: 'Test2',\n value: 'test2',\n },\n {\n label: 'Test3',\n value: 'test3',\n },\n];\nexport const UnReceivedata = [\n {\n label: 'Test1',\n value: 'test1',\n },\n {\n label: 'Test2',\n value: 'test2',\n },\n {\n label: 'Test3',\n value: 'test3',\n },\n];\nexport const ProductType = [\n {\n label: 'Delivery',\n value: 'delivery',\n },\n {\n label: 'Return',\n value: 'return',\n },\n {\n label: 'Collection',\n value: 'collection',\n },\n];\nexport const TaskType = [\n {\n label: 'Client',\n value: 'client',\n },\n {\n label: 'Customer Service (CS)',\n value: 'cs',\n },\n {\n label: 'Transport (DH)',\n value: 'dh',\n },\n {\n label: 'Warehouse',\n value: 'warehouse',\n },\n {\n label: 'Customer Portal',\n value: 'customer-portal',\n },\n {\n label: 'Delivery App',\n value: 'delivery-app',\n },\n {\n label: 'Complaints',\n value: 'complaints',\n },\n {\n label: 'Offshore',\n value: 'offshore',\n },\n {\n label: 'Stock Admin',\n value: 'stock-admin',\n },\n {\n label: 'Call Customer',\n value: 'call-customer',\n },\n {\n label: 'Driver Compliance',\n value: 'driver-compliance',\n },\n];\nexport const CustomOptions = [\n {\n label: 'Private',\n value: 'private',\n },\n {\n label: 'Public',\n value: 'public',\n },\n];\nexport const DefectConfirm = [\n {\n label: 'Yes',\n value: 'yes',\n },\n {\n label: 'No',\n value: 'no',\n },\n];\nexport const TomTomColumns = [\n {\n header: 'Event Date',\n accessorKey: 'eventdate',\n },\n {\n header: 'Route',\n accessorKey: 'route',\n },\n {\n header: 'Details',\n accessorKey: 'details',\n },\n {\n header: 'Type',\n accessorKey: 'type',\n },\n];\nexport const orderResources = [\n {\n types: 'Workflow',\n category: 'ePOD',\n datetimes: '2024-06-01 10:30:30',\n action: 'action',\n reference: 'Success Note',\n },\n {\n types: 'Workflow',\n category: 'ePOD',\n datetimes: '2024-06-01 10:30:30',\n action: 'action',\n reference: 'Success Note',\n },\n {\n types: 'Workflow',\n category: 'ePOD',\n datetimes: '2024-06-01 10:30:30',\n action: 'action',\n reference: 'Success Note',\n },\n {\n types: 'Workflow',\n category: 'ePOD',\n datetimes: '2024-06-01 10:30:30',\n action: 'action',\n reference: 'Success Note',\n },\n];\nexport const orderResourcesColumns = [\n {\n header: 'Date Time',\n accessorKey: 'datetimes',\n },\n {\n header: 'Type',\n accessorKey: 'types',\n },\n {\n header: 'Category',\n accessorKey: 'category',\n },\n {\n header: 'Reference',\n accessorKey: 'reference',\n },\n {\n header: 'Action',\n accessorKey: 'action',\n },\n];\nexport const tomtomResources = [\n {\n route: 'Hammer',\n details: 'Sent to Object; RYF',\n eventdate: '2024-06-01',\n type: 'workFlow',\n },\n {\n route: 'Screwdriver',\n details: 'Sent to Object; RYF',\n eventdate: '2024-06-10',\n type: 'workFlow',\n },\n {\n route: 'Wrench',\n details: 'Sent to Object; RYF',\n eventdate: '2024-06-20',\n type: 'workFlow',\n },\n];\nexport const toolboxResources = [\n {\n resources: 'Hammer',\n sources: 'John Doe',\n datetime: '2024-06-01',\n action: 'Action',\n },\n {\n resources: 'Screwdriver',\n sources: 'Jane Smith',\n datetime: '2024-06-10',\n action: 'Action',\n },\n {\n resources: 'Wrench',\n sources: 'Jim Beam',\n datetime: '2024-06-20',\n action: 'Action',\n },\n];\nexport const toolboxColumns = [\n {\n header: 'Resources',\n accessorKey: 'resources',\n },\n {\n header: 'Sources',\n accessorKey: 'sources',\n },\n {\n header: 'Date Time',\n accessorKey: 'datetime',\n },\n {\n header: 'Action',\n accessorKey: 'action',\n },\n];\nexport const SystemEventColumns = [\n {\n header: 'Date',\n accessorKey: 'date',\n },\n {\n header: 'Event',\n accessorKey: 'event',\n },\n {\n header: 'Notes',\n accessorKey: 'notes',\n },\n {\n header: 'Code',\n accessorKey: 'code',\n },\n];\nexport const systemLgsEvents = [\n {\n event: 'Order cretaed via Api',\n notes: 'Consignment Number: BGRD546841',\n date: '2024-06-01 20:01:11',\n code: 'BPA1124',\n },\n {\n event: 'Order cretaed via Api',\n notes: 'Consignment Number: BGRD546841',\n date: '2024-06-01 20:01:11',\n code: 'BPA1124',\n },\n {\n event: 'Order cretaed via Api',\n notes: 'Consignment Number: BGRD546841',\n date: '2024-06-01 20:01:11',\n code: 'BPA1124',\n },\n {\n event: 'Order cretaed via Api',\n notes: 'Consignment Number: BGRD546841',\n date: '2024-06-01 20:01:11',\n code: 'BPA1124',\n },\n];\n","import React from 'react';\nimport { useCreateTaskPayload, useStaticData } from '../../store';\nimport {\n FormRow,\n SplitContainer,\n StyledAntSelect,\n Wrapper,\n} from './SharedComponents';\nimport RadioButtonGroup from '../../../../../common/radio-group/RadioButtonGroup';\nimport styled from 'styled-components';\nimport { isValid } from 'date-fns';\nimport { TextArea } from '@bjsdistribution/dms-component-library';\nimport { DatePicker } from 'antd';\nimport dayjs from 'dayjs';\nimport { DatePickerWrap } from '../modalstyle';\nimport { priorityData } from '../../utils';\n\nfunction CreateTaskModal() {\n const [staticData] = useStaticData();\n const [apiPayload, setApiPayload] = useCreateTaskPayload();\n const taskTypeOptions = getTaskTypeOptions(staticData);\n const priorityOptions = getPriorityOptions(staticData);\n\n const handleTaskTypeChange = (value: any) => {\n const selectedType = staticData?.[0]?.order_flag_types?.find(\n (type: any) => type.id === value\n )?.type;\n\n setApiPayload(prev => ({\n ...prev,\n flag_type: selectedType || '',\n }));\n };\n\n const handlePriorityChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = parseInt(e.target.value, 10);\n setApiPayload((prev: any) => ({\n ...prev,\n priority: value,\n }));\n };\n\n const handleDescriptionChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ) => {\n const val = e.target.value;\n setApiPayload(prev => ({\n ...prev,\n description: val,\n }));\n };\n\n const handleDateChange = (date: any | null) => {\n if (date && isValid(date.$d)) {\n const formatted = date.$d.toISOString();\n setApiPayload(prev => ({\n ...prev,\n due_datetime: formatted,\n }));\n } else {\n setApiPayload(prev => ({\n ...prev,\n due_datetime: '',\n }));\n }\n };\n return (\n <Wrapper>\n <SplitContainer>\n <FormRow label=\"Task Type\" required>\n <StyledAntSelect\n options={taskTypeOptions}\n placeholder=\"Select Type\"\n onChange={handleTaskTypeChange}\n value={apiPayload?.flag_type || null}\n />\n </FormRow>\n\n <FormRow label=\"Priority\" required>\n <RadioButtonGroup\n heading=\"\"\n options={priorityOptions || []}\n onChange={handlePriorityChange}\n direction=\"horizontal\"\n selectedValue={apiPayload?.priority || 3}\n required={false}\n />\n </FormRow>\n\n <FormRow label=\"Due Date & Time\">\n <StyleContainer>\n <DatePickerWrap>\n <DatePicker\n format=\"DD/MM/YYYY HH:mm A\"\n value={\n apiPayload?.due_datetime\n ? dayjs(apiPayload?.due_datetime)\n : null\n }\n onChange={handleDateChange}\n placeholder=\"Select Date & Time\"\n showTime={{ defaultValue: dayjs('00:00', 'HH:mm') }}\n disabledDate={current =>\n current && current < dayjs().startOf('day')\n }\n disabledTime={date => getDisabledTime(date)}\n />\n </DatePickerWrap>\n </StyleContainer>\n </FormRow>\n </SplitContainer>\n\n <SplitContainer>\n <Label>\n Description\n <span style={{ color: 'red', fontSize: '20px' }}> * </span>\n </Label>\n <StyledTextArea\n placeholder=\"Add Description\"\n required\n onChange={handleDescriptionChange}\n value={apiPayload?.description || ''}\n />\n </SplitContainer>\n </Wrapper>\n );\n}\n\nconst getTaskTypeOptions = (staticData: any) => {\n return (\n staticData?.[0]?.order_flag_types?.map((item: any) => ({\n label: item?.type\n ?.replace(/_/g, ' ')\n ?.replace(/\\b\\w/g, (char: any) => char.toUpperCase()),\n value: item?.id,\n })) || []\n );\n};\n\nconst getPriorityOptions = (staticData: any) => {\n return staticData?.[0]?.priorities?.map((option: any) => {\n const colorMatch = priorityData?.find(p => p.id === option.id);\n return {\n label: option.name,\n value: option.id,\n color: colorMatch?.color || '#ccc',\n };\n });\n};\n\nconst getDisabledTime = (date: any) => {\n if (date && date.isSame(dayjs(), 'day')) {\n const currentHour = dayjs().hour();\n const currentMinute = dayjs().minute();\n return {\n disabledHours: () =>\n Array.from({ length: 24 }, (_, i) => i).filter(\n hour => hour < currentHour\n ),\n disabledMinutes: (selectedHour: number) => {\n if (selectedHour === currentHour) {\n return Array.from({ length: 60 }, (_, i) => i).filter(\n minute => minute < currentMinute\n );\n }\n return [];\n },\n };\n }\n return {};\n};\n\nconst StyleContainer = styled.div`\n border-radius: 20px;\n background: #fff;\n`;\n\nconst Label = styled.label`\n color: #6a7378;\n font-family: 'Lato', sans-serif;\n font-size: 14px;\n font-weight: 500;\n`;\n\nconst StyledTextArea = styled(TextArea)`\n display: flex;\n padding: 12px;\n align-items: flex-start;\n gap: 4px;\n align-self: stretch;\n border-radius: 10px;\n border: 1px solid var(--Neutral-Gray-Gray-100, #e0e2e7);\n background: var(--Flowkit-White, #fff);\n resize: none;\n height: 50%;\n`;\n\nexport default CreateTaskModal;\n","import React from 'react';\nimport { useEffect } from 'react';\nimport {\n RadioButtonGroup,\n useApiHook,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport { CustomOptions } from '../../../../fakeData';\nimport {\n initialPayload,\n useStaticData,\n useCreateTaskPayload,\n useNotiifcationLabel,\n} from '../../store';\nimport { allTypes } from '../../types';\nimport { useCurrentAction } from '../../../store';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport styled from 'styled-components';\nimport { notification } from 'antd';\nimport { ContentContainer } from '../modalstyle';\nimport CreateTaskModal from './CreateTaskModal';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: allTypes[];\n}\ninterface IProps {\n callReminderApi: any;\n callUnresolvedTaskApi: any;\n}\n\nfunction TaskModal(props: IProps) {\n const [, setCurrentAction] = useCurrentAction();\n const [taskPayload, setTaskPayload] = useCreateTaskPayload();\n const [, setLabel] = useNotiifcationLabel();\n const [, setStaticData] = useStaticData();\n\n const { fetchData: createFlagAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/`,\n method: 'POST',\n });\n\n const { data: fetchedStaticData } = useApiHook<ApiResponse>({\n endpoint: `/v1/task/getStaticData/all/`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (fetchedStaticData) {\n setStaticData(fetchedStaticData?.data);\n }\n }, [fetchedStaticData]);\n\n const handleRadioButtonChange = (event: any) => {\n const selectedValue = event.target.value;\n const isPrivateValue = selectedValue === 'private';\n setTaskPayload(prevState => ({\n ...prevState,\n is_private: isPrivateValue,\n }));\n };\n\n const closeModal = () => {\n setCurrentAction(undefined);\n setTaskPayload(initialPayload);\n setLabel('');\n };\n\n const handleTaskSubmit = async () => {\n let response = (await createFlagAPI({ payload: [taskPayload] })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (response.code == 200 && response?.data) {\n closeModal();\n notification.success({\n message: 'Success',\n description: `${response.message}`,\n });\n await props?.callUnresolvedTaskApi();\n }\n if (response?.code == null && response?.error) {\n return notification.error({\n message: 'Failure',\n description: `${response.error}`,\n });\n }\n };\n\n const isSubmitDisabled = () => {\n const { description, flag_type, priority } = taskPayload;\n return !description || !flag_type || !priority;\n };\n\n return (\n <>\n <OrderModal\n headerTitle={'CREATE TASK'}\n onCloseHeader={closeModal}\n onSubmit={handleTaskSubmit}\n submitBtnTitle={'Save Details'}\n isSubmitDisabled={isSubmitDisabled()}\n footerActions={\n <RadioButtonGroup\n selectedValue={\n taskPayload?.is_private == true ? 'private' : 'public'\n }\n options={CustomOptions}\n onChange={handleRadioButtonChange}\n heading={''}\n required={false}\n />\n }\n >\n <ContentContainer>{<CreateTaskModal />}</ContentContainer>\n </OrderModal>\n </>\n );\n}\n\nconst OrderModal = styled(OrderActionModal)`\n width: 70%;\n`;\n\nexport default TaskModal;\n","import styled from 'styled-components';\n\nexport const Title = styled.span`\n font-family: 'Lato', sans-serif;\n font-size: 16px;\n font-weight: 600;\n color: #6a7378;\n`;\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nexport const FieldRow = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n width: 300px;\n justify-content: space-between;\n`;\n\nexport const Label = styled.label`\n font-size: 14px;\n color: #7b7874;\n`;\n\nexport const Input = styled.input`\n width: 70px;\n padding: 6px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 4px;\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n margin: 0;\n }\n`;\n\nexport const MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\nexport const CurrencySymbol = styled.span`\n color: #858d9d;\n`;\n","import React from 'react';\nimport {\n Container,\n FieldRow,\n Input,\n Label,\n MainContainer,\n Title,\n} from '../../styles';\n// import { ChargesType } from '../../../../types';\n\nimport { getBaseUrlSymbol, handleKeyDownDebrief } from '../../../../../utils';\nimport {\n useChargesState,\n useOrderDetails,\n useOrderStaticData,\n} from '../../../../../store';\nimport { CurrencySymbol } from '../../styles';\nimport styled from 'styled-components';\n\nconst fields = [\n { label: 'Weight', value: 'weight' },\n { label: 'Drop Time', value: 'drop_time' },\n { label: 'Timed Services', value: 'timed_service' },\n { label: 'Wait Time', value: 'wait_time' },\n { label: 'Extra Floor', value: 'extra_floor' },\n { label: 'Bulk Items', value: 'bulky_items' },\n { label: 'Relabel (Pre-del)', value: 're_label' },\n { label: 'Extra CBM', value: 'extra_cube' },\n { label: 'Additional Box', value: 'additional_box' },\n { label: 'Additional Item', value: 'additional_item' },\n];\n\ninterface IProps {\n inputValue: Record<string, string>;\n setInputValue: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n}\n\nfunction OrderCharges(props: IProps) {\n const [, setCharges] = useChargesState();\n const [orderDetails] = useOrderDetails();\n const [orderStaticData] = useOrderStaticData();\n const weightVal = orderDetails?.weight;\n const dropTime = orderDetails?.drop_time;\n const cbm = orderDetails?.cube;\n const timesServiceId = orderDetails?.order_services_detail?.timed_service_id;\n const selectedTimedService = orderStaticData?.order_timed_services?.find(\n (x: any) => x?.id === timesServiceId\n );\n const showSelectedTimedService =\n selectedTimedService !== null && selectedTimedService !== undefined;\n const showCbm = cbm !== undefined && cbm !== null && cbm > 0;\n const showDropTime = dropTime !== undefined && dropTime !== null;\n const showWeight = weightVal !== null && weightVal > 0;\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const handleChange = (field: string, value: string) => {\n props?.setInputValue((prev: any) => ({\n ...prev,\n [field]: value,\n }));\n let val = parseFloat(value);\n if (value === '') {\n setCharges(prev => ({\n ...prev,\n [field]: 0,\n }));\n } else if (!isNaN(val)) {\n val = val >= 0 ? val : 0;\n setCharges(prev => ({\n ...prev,\n [field]: val,\n }));\n }\n };\n\n return (\n <MainContainer>\n <Title>Order Charges</Title>\n <Container>\n {fields?.map(item => (\n <FieldRow key={item.value}>\n <Label style={{ minWidth: '100px' }}>{item.label}</Label>\n {showWeight && item?.value === 'weight' && (\n <OrderValue>{weightVal} Kg</OrderValue>\n )}\n {showDropTime && item?.value === 'drop_time' && (\n <OrderValue>{dropTime} mins</OrderValue>\n )}\n {showCbm && item?.value === 'extra_cube' && (\n <OrderValue>\n {cbm} (m<sup>3</sup>)\n </OrderValue>\n )}\n {showSelectedTimedService && item?.value === 'timed_service' && (\n <OrderValue>\n {selectedTimedService?.type?.replaceAll('_', '')}\n </OrderValue>\n )}\n <div style={{ display: 'flex', gap: '3px', alignItems: 'center' }}>\n <CurrencySymbol>{baseUrlSymbol}</CurrencySymbol>\n <Input\n min={0}\n max={10000}\n type=\"number\"\n placeholder=\"0.00\"\n onWheel={(e: any) => e.target.blur()}\n value={props?.inputValue[item.value] ?? ''}\n onChange={(e: any) => handleChange(item.value, e.target.value)}\n onKeyDown={handleKeyDownDebrief}\n />\n </div>\n </FieldRow>\n ))}\n </Container>\n </MainContainer>\n );\n}\n\nconst OrderValue = styled.span`\n color: #6396e5;\n`;\n\nexport default OrderCharges;\n","import React from 'react';\nimport {\n Container,\n CurrencySymbol,\n FieldRow,\n Input,\n Label,\n MainContainer,\n Title,\n} from '../../styles';\nimport { getBaseUrlSymbol, handleKeyDownDebrief } from '../../../../../utils';\nimport { useChargesState } from '../../../../../store';\n\nconst fields = [\n { label: 'Repackage', value: 're_package' },\n { label: 'Disassemble', value: 'disassemble' },\n { label: 'QC', value: 'collection_qc' },\n { label: 'Return to Client', value: 'return_to_client' },\n];\n\ninterface IProps {\n inputValue: Record<string, string>;\n setInputValue: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n}\n\nfunction CollectionAddOns(props: IProps) {\n const [, setCharges] = useChargesState();\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const handleChange = (field: string, value: string) => {\n props?.setInputValue((prev: any) => ({\n ...prev,\n [field]: value,\n }));\n let val = parseFloat(value);\n if (isNaN(val)) {\n setCharges(prev => ({\n ...prev,\n [field]: 0,\n }));\n } else {\n val = val >= 0 ? val : 0;\n setCharges(prev => ({\n ...prev,\n [field]: val,\n }));\n }\n };\n\n return (\n <MainContainer>\n <Title>Collection Add-Ons</Title>\n <Container>\n {fields.map((item: any) => (\n <FieldRow key={item.value}>\n <Label>{item.label}</Label>\n <div style={{ display: 'flex', gap: '3px', alignItems: 'center' }}>\n <CurrencySymbol>{baseUrlSymbol}</CurrencySymbol>\n <Input\n min={0}\n max={10000}\n type=\"number\"\n placeholder=\"0.00\"\n onWheel={(e: any) => e.target.blur()}\n value={props?.inputValue[item.value] ?? ''}\n onChange={(e: any) => handleChange(item.value, e.target.value)}\n onKeyDown={handleKeyDownDebrief}\n />\n </div>\n </FieldRow>\n ))}\n </Container>\n </MainContainer>\n );\n}\n\nexport default CollectionAddOns;\n","import React from 'react';\nimport {\n Container,\n CurrencySymbol,\n FieldRow,\n Input,\n Label,\n MainContainer,\n Title,\n} from '../../styles';\nimport { getBaseUrlSymbol, handleKeyDownDebrief } from '../../../../../utils';\nimport { useChargesState } from '../../../../../store';\n\nconst fields = [\n { label: 'Disposal & Recycling', value: 'disposal_recycling' },\n { label: 'Disposal Only', value: 'disposal' },\n { label: 'Recycle Only', value: 'recycle' },\n { label: 'Admin', value: 'admin' },\n];\n\ninterface IProps {\n inputValue: Record<string, string>;\n setInputValue: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n}\n\nfunction DisposalCharge(props: IProps) {\n const [, setCharges] = useChargesState();\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const handleChange = (field: string, value: string) => {\n props?.setInputValue((prev: any) => ({\n ...prev,\n [field]: value,\n }));\n let val = parseFloat(value);\n if (isNaN(val)) {\n setCharges(prev => ({\n ...prev,\n [field]: 0,\n }));\n } else {\n val = val >= 0 ? val : 0;\n setCharges(prev => ({\n ...prev,\n [field]: val,\n }));\n }\n };\n\n return (\n <MainContainer>\n <Title>Disposal Charges</Title>\n <Container>\n {fields.map((item: any) => (\n <FieldRow key={item.value}>\n <Label>{item.label}</Label>\n <div style={{ display: 'flex', gap: '3px', alignItems: 'center' }}>\n <CurrencySymbol>{baseUrlSymbol}</CurrencySymbol>\n <Input\n min={0}\n max={10000}\n type=\"number\"\n placeholder=\"0.00\"\n onWheel={(e: any) => e.target.blur()}\n value={props?.inputValue[item.value] ?? ''}\n onChange={(e: any) => handleChange(item.value, e.target.value)}\n onKeyDown={handleKeyDownDebrief}\n />\n </div>\n </FieldRow>\n ))}\n </Container>\n </MainContainer>\n );\n}\n\nexport default DisposalCharge;\n","import React from 'react';\nimport {\n // Container,\n FieldRow,\n Input,\n Label,\n MainContainer,\n Title,\n} from '../../styles';\nimport { AntSelect } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport { getBaseUrlSymbol, handleKeyDownDebrief } from '../../../../../utils';\nimport { useChargesState } from '../../../../../store';\nimport { ChargesType } from '../../../../../types';\n\ninterface IProps {\n inputValue: Record<string, string>;\n setInputValue: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n staticData: any;\n}\n\nfunction BaseCharges(props: IProps) {\n const [chargesState, setCharges] = useChargesState();\n const baseUrlSymbol = getBaseUrlSymbol();\n\n // const [inputValue, setInputValue] = useState<Record<string, string>>({});\n const handleChange = (field: string, value: string) => {\n props?.setInputValue((prev: any) => ({\n ...prev,\n [field]: value,\n }));\n let val = parseFloat(value);\n if (value === '') {\n setCharges(prev => ({\n ...prev,\n [field]: 0,\n }));\n } else if (!isNaN(val)) {\n val = val >= 0 ? val : 0;\n setCharges(prev => ({\n ...prev,\n [field]: val,\n }));\n }\n };\n\n const onChange = (val: string) => {\n setCharges((charge: ChargesType) => ({\n ...charge,\n base_charge_type: +val,\n }));\n };\n\n const baseChargeOptions = props?.staticData?.base_charges?.map((x: any) => {\n return {\n label: x?.type,\n value: x?.id,\n };\n });\n\n return (\n <MainContainer>\n <Title>Base Charge</Title>\n <Wrapper>\n <FieldRow>\n <Label style={{ width: '90px' }}>Base Charge</Label>\n <div style={{ display: 'flex', gap: '3px', alignItems: 'center' }}>\n <AntSelect\n onChange={onChange}\n options={baseChargeOptions || []}\n placeholder=\"Base charge type\"\n defaultValue={baseChargeOptions?.filter(\n (x: any) => x?.value === chargesState?.base_charge_type\n )}\n style={{ width: 100 }}\n />\n <CurrencyWrapper>{baseUrlSymbol}</CurrencyWrapper>\n <Input\n min={0}\n max={10000}\n type=\"number\"\n placeholder=\"0.00\"\n onWheel={(e: any) => e.target.blur()}\n value={props?.inputValue['base_charge'] ?? ''}\n onChange={(e: any) => handleChange('base_charge', e.target.value)}\n onKeyDown={handleKeyDownDebrief}\n />\n </div>\n </FieldRow>\n </Wrapper>\n </MainContainer>\n );\n}\n\nconst Wrapper = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst CurrencyWrapper = styled.div`\n display: flex;\n align-items: center;\n color: #999;\n`;\n\nexport default BaseCharges;\n","import React from 'react';\nimport {\n Container,\n CurrencySymbol,\n FieldRow,\n Input,\n Label,\n MainContainer,\n Title,\n} from '../../styles';\n\nimport { getBaseUrlSymbol, handleKeyDownDebrief } from '../../../../../utils';\nimport { useChargesState } from '../../../../../store';\n\nconst fields = ['ROC', 'Unpack', 'Packaging Disposal', 'Assembly', 'QC'];\n\ninterface IProps {\n inputValue: Record<string, string>;\n setInputValue: React.Dispatch<React.SetStateAction<Record<string, string>>>;\n}\n\nfunction DeliveryAddOns(props: IProps) {\n const [, setCharges] = useChargesState();\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const fieldsInLabelValueFormat = fields.map(field => ({\n label: field,\n value: field.toLowerCase().replace(/ /g, '_'), // You can adjust this to your preference\n }));\n\n const handleChange = (field: string, value: string) => {\n props?.setInputValue((prev: any) => ({\n ...prev,\n [field]: value,\n }));\n let val = parseFloat(value);\n if (isNaN(val)) {\n setCharges(prev => ({\n ...prev,\n [field]: 0,\n }));\n } else {\n val = val >= 0 ? val : 0;\n setCharges(prev => ({\n ...prev,\n [field]: val,\n }));\n }\n };\n\n return (\n <MainContainer>\n <Title>Delivery Add-Ons</Title>\n <Container>\n {fieldsInLabelValueFormat.map((item: any) => (\n <FieldRow key={item.value}>\n <Label>{item.label}</Label>\n <div style={{ display: 'flex', gap: '3px', alignItems: 'center' }}>\n <CurrencySymbol>{baseUrlSymbol}</CurrencySymbol>\n <Input\n min={0}\n max={10000}\n type=\"number\"\n placeholder=\"0.00\"\n onWheel={(e: any) => e.target.blur()}\n value={props?.inputValue[item.value] ?? ''}\n onKeyDown={handleKeyDownDebrief}\n onChange={(e: any) => handleChange(item.value, e.target.value)}\n />\n </div>\n </FieldRow>\n ))}\n </Container>\n </MainContainer>\n );\n}\n\nexport default DeliveryAddOns;\n","import React, { useState } from 'react';\nimport {\n Container,\n CurrencySymbol,\n FieldRow,\n Input,\n MainContainer,\n Title,\n} from '../../styles';\nimport { getBaseUrlSymbol, handleKeyDownDebrief } from '../../../../../utils';\nimport { useChargesState } from '../../../../../store';\n\nfunction AdhocSection() {\n const [charges, setCharges] = useChargesState();\n const [inputValues, setInputValues] = useState<any>(charges?.adhoc_charges);\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const handleLabelChange = (id: string, newLabel: string) => {\n setCharges(prev => ({\n ...prev,\n adhoc_charges: prev.adhoc_charges.map(charge =>\n charge.id === id\n ? { ...charge, adhoc_charges_description: newLabel }\n : charge\n ),\n }));\n };\n\n const handleValueChange = (id: string, value: string) => {\n setInputValues((prev: any) => ({\n ...prev,\n [id]: value,\n }));\n let val = parseFloat(value);\n if (value === '') {\n setCharges(prev => ({\n ...prev,\n adhoc_charges: prev.adhoc_charges.map(charge =>\n charge.id === id ? { ...charge, adhoc_charges: 0 } : charge\n ),\n }));\n } else if (!isNaN(val)) {\n val = val >= 0 ? val : 0;\n setCharges(prev => ({\n ...prev,\n adhoc_charges: prev.adhoc_charges.map(charge =>\n charge.id === id ? { ...charge, adhoc_charges: val } : charge\n ),\n }));\n }\n };\n\n return (\n <MainContainer>\n <Title>Adhoc</Title>\n <Container>\n {charges?.adhoc_charges?.map(item => {\n return (\n <FieldRow key={item.id}>\n <Input\n placeholder=\"\"\n value={item.adhoc_charges_description}\n onChange={(e: any) =>\n handleLabelChange(item.id, e.target.value)\n }\n style={{ marginRight: '8px', flex: 1 }}\n />\n <div\n style={{ display: 'flex', gap: '3px', alignItems: 'center' }}\n >\n <CurrencySymbol>{baseUrlSymbol}</CurrencySymbol>\n <Input\n type=\"number\"\n min={0}\n max={10000}\n placeholder=\"0.00\"\n onWheel={(e: any) => e.target.blur()}\n value={inputValues[item.id] ?? ''}\n onChange={(e: any) =>\n handleValueChange(item.id, e.target.value)\n }\n style={{ flex: 1 }}\n onKeyDown={handleKeyDownDebrief}\n />\n </div>\n </FieldRow>\n );\n })}\n </Container>\n </MainContainer>\n );\n}\n\nexport default AdhocSection;\n","import { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n useFailureReason,\n useIsFailureReasonChanged,\n useOrderStaticData,\n} from '../../../../../store';\n\nfunction FailureReasonDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [failureReasonState, setFailureReason] = useFailureReason();\n const [, setIsFailureReasonChanged] = useIsFailureReasonChanged(); // to map esc reason properly\n const failureReasons = orderStaticData?.failure_reasons;\n const escalationCategory = orderStaticData?.escalation_category;\n const escalationTypes = orderStaticData?.escalation_types;\n const faultNonFaultReasons = orderStaticData?.fault_non_fault_reasons;\n\n // Step 1: Get IDs of \"Failure-Non_Fault\" and \"Failure-Fault\"\n const failureNonFaultId = escalationCategory?.find(\n (category: any) => category?.type === 'Failure - Non Fault'\n )?.id;\n const failureFaultId = escalationCategory?.find(\n (category: any) => category?.type === 'Failure - Fault'\n )?.id;\n\n // Step 2: Map to get escalation type IDs\n\n const failureNonFaultEscTypeId = escalationTypes?.filter(\n (type: any) => type?.escalation_category_id === failureNonFaultId\n )[0]?.id;\n const failureFaultEscTypeId = escalationTypes?.filter(\n (type: any) => type?.escalation_category_id === failureFaultId\n )[0]?.id;\n\n // Step 3: Separate fault and non-fault reasons\n const nonFaultReasons = faultNonFaultReasons?.filter(\n (reason: any) => reason?.escalation_type_id === failureNonFaultEscTypeId\n );\n const faultReasons = faultNonFaultReasons?.filter(\n (reason: any) => reason?.escalation_type_id === failureFaultEscTypeId\n );\n\n // Step 4: Simplified mapping to failureReasons\n const mapReasonsToFailures = (reasons: any) => {\n const reasonIds = new Set(\n reasons?.map((reason: any) => reason?.order_reason_id)\n );\n return failureReasons\n ?.filter((failure: any) => reasonIds?.has(failure?.id))\n ?.map((failure: any) => ({\n value: failure?.reason,\n label: failure?.title,\n id: failure?.id,\n }));\n };\n\n const faultReasonOptions = mapReasonsToFailures(faultReasons);\n const nonFaultReasonOptions = mapReasonsToFailures(nonFaultReasons);\n\n const groupedOptions: any = [\n {\n label: 'Fault Reasons',\n options: faultReasonOptions,\n },\n {\n label: 'Non-Fault Reasons',\n options: nonFaultReasonOptions,\n },\n ];\n\n const onChangeOption = (option: any) => {\n setFailureReason(option);\n setIsFailureReasonChanged(true);\n };\n\n const formatGroupLabel = (data: any) => (\n <div style={{ color: 'rgba(0,0,0,0.8)' }}>\n <span>{data?.label}</span>\n {/* <span>{data?.options?.length}</span> */}\n </div>\n );\n\n return (\n <Container>\n <Label label=\"Failure Reason\" htmlFor=\"failurereasondropdown\" required />\n <SelectDropdown\n placeholder=\"Select Reason\"\n options={groupedOptions || []}\n inputId=\"failurereasondropdown\"\n openMenuOnFocus\n value={failureReasonState}\n onChange={onChangeOption}\n formatGroupLabel={formatGroupLabel}\n isDisabled={false}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default FailureReasonDropdown;\n","import { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport {\n useChargesState,\n useNewStatus,\n useOrderStaticData,\n} from '../../../../../store';\n\nfunction StatusDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [newStatus, setNewStatus] = useNewStatus();\n const [, setCharges] = useChargesState();\n const newStatusOptions = orderStaticData?.new_status?.map((x: any) => ({\n label: x.type,\n value: x.id,\n }));\n const selectedOption =\n newStatusOptions?.find((option: any) => option.label === newStatus) || null;\n\n const onChange = (option: any) => {\n setNewStatus(option?.label);\n setCharges(prev => ({ ...prev, new_order_status: option?.label }));\n };\n return (\n <Container>\n <Label label=\"New Status\" htmlFor=\"statusdropdown\" required />\n <SelectDropdown\n placeholder=\"Select Status\"\n options={newStatusOptions || []}\n inputId=\"statusdropdown\"\n value={selectedOption} // Set the selected option here\n openMenuOnFocus\n onChange={onChange}\n isDisabled={false}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default StatusDropdown;\n","import { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderCancelReason, useOrderStaticData } from '../../../../../store';\n\nfunction CancellationReasonDropdown() {\n const [cancelationReason, setCancelationReason] = useOrderCancelReason();\n const [orderStaticData] = useOrderStaticData();\n const cancellationReasonOptions =\n orderStaticData?.cancellation_reasons?.map((x: any) => ({\n label: x.reason,\n value: x.id,\n })) || [];\n return (\n <Container>\n <Label\n label=\"Cancellation Reason\"\n htmlFor=\"cancellationreasondropdown\"\n required\n />\n <SelectDropdown\n placeholder=\"Select Reason\"\n options={cancellationReasonOptions || []}\n inputId=\"cancellationreasondropdown\"\n openMenuOnFocus\n value={cancelationReason}\n onChange={selectedOption => setCancelationReason(selectedOption)}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default CancellationReasonDropdown;\n","import { Label, SelectDropdown } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderHoldReason, useOrderStaticData } from '../../../../../store';\n\nfunction OrderHoldReasonDropdown() {\n const [orderStaticData] = useOrderStaticData();\n const [orderHold, setOrderHold] = useOrderHoldReason();\n const holdReasonOptions =\n orderStaticData?.onhold_reasons?.map((x: any) => ({\n label: x.reason,\n value: x.id,\n })) || [];\n return (\n <Container>\n <Label label=\"Hold Reason\" htmlFor=\"holdreasondropdown\" required />\n <SelectDropdown\n placeholder=\"Select Reason\"\n options={holdReasonOptions || []}\n inputId=\"holdreasondropdown\"\n openMenuOnFocus\n value={orderHold}\n onChange={selectedOption => setOrderHold(selectedOption)}\n // isDisabled={isDisable}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n`;\n\nexport default OrderHoldReasonDropdown;\n","import React from 'react';\nimport FailureReasonDropdown from '../dropdowns/FailureReasonDropdown';\nimport StatusDropdown from '../dropdowns/StatusDropdown';\nimport styled from 'styled-components';\nimport { Label, TextArea } from '@bjsdistribution/dms-component-library';\nimport CancellationReasonDropdown from '../dropdowns/CancellationReasonDropdown';\nimport OrderHoldReasonDropdown from '../dropdowns/OrderHoldReasonDropdown';\nimport {\n useChargesState,\n useNewStatus,\n useOrderDetails,\n useProductDetails,\n} from '../../../../../store';\nimport { getBaseUrlSymbol } from '../../../../../utils';\n\nfunction FailureContent() {\n const [newStatus] = useNewStatus();\n const [orderDetails] = useOrderDetails();\n const [chargesState] = useChargesState();\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const [productdata] = useProductDetails();\n const sortedProductData = productdata?.sort((a: any, b: any) => {\n return a?.status === b?.status ? 0 : a?.status ? -1 : 1;\n });\n\n const products = Array.isArray(sortedProductData)\n ? sortedProductData?.filter(item => item?.status === true)\n : [];\n\n const excludedFields = [\n 'debrief_notes',\n 'new_order_status',\n 'base_charge_type',\n 'adhoc_charges',\n 'debrief_status',\n ]; // Fields to exclude\n let totalChargesAmount = 0;\n\n for (const [key, value] of Object.entries(chargesState)) {\n if (!excludedFields.includes(key) && typeof value === 'number') {\n totalChargesAmount += value;\n }\n }\n\n const adhocTotalCharges =\n chargesState?.adhoc_charges?.length > 0\n ? chargesState?.adhoc_charges?.reduce(\n (acc, item) => acc + item.adhoc_charges,\n 0\n )\n : 0;\n\n return (\n <>\n <DropdownGrid>\n <DropdownGroup>\n <FailureReasonDropdown />\n </DropdownGroup>\n <DropdownGroup>\n <StatusDropdown />\n </DropdownGroup>\n {newStatus === 'Cancelled' && (\n <DropdownGroup>\n <CancellationReasonDropdown />\n </DropdownGroup>\n )}\n {newStatus === 'On Hold' && (\n <DropdownGroup>\n <OrderHoldReasonDropdown />\n </DropdownGroup>\n )}\n <GroupedFields>\n <PairGroup>\n <SmallGroup>\n <Label label=\"Items\" htmlFor=\"items\" />\n <Text>{products?.length}</Text>\n </SmallGroup>\n <SmallGroup>\n <Label label=\"Total Charge\" htmlFor=\"totalCharge\" />\n <div\n style={{ display: 'flex', gap: '4px', alignItems: 'center' }}\n >\n <CurrencyWrapper>{baseUrlSymbol}</CurrencyWrapper>\n <Text>{totalChargesAmount + adhocTotalCharges}</Text>\n </div>\n </SmallGroup>\n </PairGroup>\n\n <PairGroup>\n <SmallGroup>\n <Label label=\"Weight\" htmlFor=\"weight\" />\n <Text>{orderDetails?.weight}Kg</Text>\n </SmallGroup>\n </PairGroup>\n </GroupedFields>\n </DropdownGrid>\n <ContDropdownGrid>\n <FieldGroup wide>\n <Label label=\"Order Status Notes\" htmlFor=\"notes\" />\n <TextInput\n id=\"notes\"\n placeholder=\"Type notes here...\"\n value={orderDetails?.order_status_note || ''}\n readOnly\n />\n </FieldGroup>\n\n <FieldGroup wide>\n <Label label=\"Charge Description\" htmlFor=\"chargedescription\" />\n <TextInput\n id=\"chargedescription\"\n placeholder=\"Type charge description here...\"\n onChange={() => {}}\n />\n </FieldGroup>\n </ContDropdownGrid>\n </>\n );\n}\n\nconst CurrencyWrapper = styled.span`\n display: flex;\n align-items: center;\n color: #999;\n`;\n\nconst Text = styled.div`\n color: #363a30;\n font-size: 14px;\n`;\nconst GroupedFields = styled.div`\n display: flex;\n gap: 7px;\n`;\n\nconst PairGroup = styled.div`\n display: flex;\n flex-direction: row;\n gap: 20px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nconst SmallGroup = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 140px;\n flex: 1;\n`;\nconst FieldGroup = styled.div<{ wide?: boolean }>`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: ${props => (props.wide ? 2 : 1)};\n min-width: ${props => (props.wide ? '300px' : '220px')};\n`;\n\nconst TextInput = styled(TextArea)`\n resize: none;\n width: 100%;\n min-height: 180px;\n`;\n\nconst DropdownGrid = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n`;\n\nconst ContDropdownGrid = styled.div`\n display: flex;\n gap: 20px;\n`;\n\nconst DropdownGroup = styled.div`\n flex: 1 1 calc(50% - 10px);\n\n @media (max-width: 768px) {\n flex: 1 1 100%;\n }\n`;\n\nexport default FailureContent;\n","import React from 'react';\nimport styled from 'styled-components';\nimport {\n CalendarIcon,\n Label,\n TextArea,\n} from '@bjsdistribution/dms-component-library';\nimport { Input } from '../../styles';\nimport {\n useChargesState,\n useOrderDetails,\n useProductDetails,\n} from '../../../../../store';\nimport { getBaseUrlSymbol } from '../../../../../utils';\n\nconst formatDate = (date: any) => {\n const padZero = (num: any) => num.toString().padStart(2, '0');\n const year = new Date(date).getFullYear();\n const month = padZero(new Date(date).getMonth() + 1);\n const day = padZero(new Date(date).getDate());\n return `${day}/${month}/${year}`;\n};\n\nfunction SuccessContent() {\n const [orderDetails] = useOrderDetails();\n const [chargesState] = useChargesState();\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const [productdata] = useProductDetails();\n const sortedProductData = productdata?.sort((a: any, b: any) => {\n return a?.status === b?.status ? 0 : a?.status ? -1 : 1;\n });\n\n const products = Array.isArray(sortedProductData)\n ? sortedProductData?.filter(item => item?.status === true)\n : [];\n\n const excludedFields = [\n 'debrief_notes',\n 'new_order_status',\n 'base_charge_type',\n 'adhoc_charges',\n 'debrief_status',\n ]; // Fields to exclude\n let totalChargesAmount = 0;\n\n for (const [key, value] of Object.entries(chargesState)) {\n if (!excludedFields.includes(key) && typeof value === 'number') {\n totalChargesAmount += value;\n }\n }\n\n const formattedDate =\n orderDetails?.action_date === null\n ? ' '\n : formatDate(orderDetails?.action_date);\n\n const adhocTotalCharges =\n chargesState?.adhoc_charges?.length > 0\n ? chargesState?.adhoc_charges?.reduce(\n (acc, item) => acc + item.adhoc_charges,\n 0\n )\n : 0;\n\n return (\n <Wrapper>\n <FieldGroup>\n <Label label=\"Signed By\" htmlFor=\"signedby\" />\n <StyledInput\n id=\"signedby\"\n placeholder=\"\"\n value={orderDetails?.order_recipient?.recipient_name || ''}\n onChange={() => {}}\n disabled\n />\n\n <Label label=\"Date\" htmlFor=\"datefield\" />\n <DateInput>\n <Text>{formattedDate}</Text>\n <CalendarIcon />\n </DateInput>\n\n <GroupedFields>\n <PairGroup>\n <SmallGroup>\n <Label label=\"Items\" htmlFor=\"items\" />\n <Text>{products?.length}</Text>\n </SmallGroup>\n <SmallGroup>\n <Label label=\"Zone\" htmlFor=\"zone\" />\n <Text>{orderDetails?.zone_code}</Text>\n </SmallGroup>\n </PairGroup>\n\n <PairGroup>\n <SmallGroup>\n <Label label=\"Weight\" htmlFor=\"weight\" />\n <Text>{orderDetails?.weight}Kg</Text>\n </SmallGroup>\n\n <SmallGroup>\n <Label label=\"Total Charge\" htmlFor=\"totalCharge\" />\n <div\n style={{ display: 'flex', gap: '4px', alignItems: 'center' }}\n >\n <CurrencyWrapper>{baseUrlSymbol}</CurrencyWrapper>\n <Text>{totalChargesAmount + adhocTotalCharges}</Text>\n </div>\n </SmallGroup>\n </PairGroup>\n </GroupedFields>\n </FieldGroup>\n\n <DropdownGrid>\n <FieldGroup wide>\n <Label label=\"Order Status Notes\" htmlFor=\"notes\" />\n <TextInput\n id=\"notes\"\n placeholder=\"Type notes here...\"\n value={orderDetails?.order_status_note || ''}\n readOnly\n />\n </FieldGroup>\n\n <FieldGroup wide>\n <Label label=\"Charge Description\" htmlFor=\"chargedescription\" />\n <TextInput\n id=\"chargedescription\"\n placeholder=\"Type charge description here...\"\n onChange={() => {}}\n />\n </FieldGroup>\n </DropdownGrid>\n </Wrapper>\n );\n}\n\nconst CurrencyWrapper = styled.span`\n display: flex;\n align-items: center;\n color: #999;\n`;\n\nconst DropdownGrid = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 20px;\n width: 48%;\n`;\n\nconst GroupedFields = styled.div`\n display: flex;\n flex-direction: column;\n gap: 7px;\n`;\n\nconst PairGroup = styled.div`\n display: flex;\n flex-direction: row;\n gap: 20px;\n\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nconst SmallGroup = styled.div`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n width: 48%;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 20px;\n width: 100%;\n padding: 10px 0;\n`;\n\nconst FieldGroup = styled.div<{ wide?: boolean }>`\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: ${props => (props.wide ? 2 : 1)};\n`;\n\nconst TextInput = styled(TextArea)`\n resize: none;\n width: 100%;\n min-height: 180px;\n`;\n\nconst StyledInput = styled(Input)`\n width: 100%;\n height: 38px;\n`;\n\nconst DateInput = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 12px;\n border-radius: 6px;\n border: 1px solid #e0e2e7;\n background-color: #fff;\n color: #363a30;\n height: 38px;\n font-size: 14px;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.05);\n`;\n\nconst Text = styled.div`\n color: #363a30;\n font-size: 14px;\n`;\n\nexport default SuccessContent;\n","import { RadioButtonGroup } from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails, useOrderStaticData } from '../../../../store';\nimport { OrdersType } from '../../../../types';\nimport { capitalize } from '../../../../utils';\n\nexport const radioButtonFilterOptions = [\n { label: 'Yes', value: 'true' },\n { label: 'No', value: 'false' },\n];\n\nfunction RadioButtonGroups() {\n const [orderStaticData] = useOrderStaticData();\n const [orderDetails, setOrderDetails] = useOrderDetails();\n\n const serviceLevelOptions = orderStaticData?.order_service_levels?.map(\n (x: any) => ({\n label: capitalize(x.type.replaceAll('_', ' ')),\n value: x.id.toString(),\n })\n );\n\n const deliveryPointOptions = orderStaticData?.order_delivery_point?.map(\n (x: any) => ({\n label: capitalize(x.type.replaceAll('_', ' ')),\n value: x.id.toString(),\n })\n );\n\n const serviceTypeOptions = orderStaticData?.order_type?.map(\n (option: any) => ({\n label: capitalize(option.type.replaceAll('_', ' ')),\n value: option.id.toString(),\n })\n );\n\n const orderServicesOptions = orderStaticData?.order_service_list;\n const deliveryPointId = orderDetails?.order_services_detail?.order_delivery_point_id?.toString();\n const serviceLevelId = orderDetails?.order_services_detail?.order_service_level_id?.toString();\n const orderTypeId = orderDetails?.order_type_id?.toString();\n\n // ON CHANGE HANDLERS\n const onChangeDeliveryPoint = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const updatedServices = {\n ...orderDetails?.order_services_detail!,\n order_delivery_point_id: +event.target.value,\n };\n const newData = { ...orderDetails, order_services_detail: updatedServices };\n setOrderDetails(newData);\n };\n\n const onChangeServiceLevel = (event: React.ChangeEvent<HTMLInputElement>) => {\n const updatedServices = {\n ...orderDetails?.order_services_detail!,\n order_service_level_id: +event.target.value,\n };\n const newData = { ...orderDetails, order_services_detail: updatedServices };\n setOrderDetails(newData);\n };\n\n const onChangeServiceType = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newData = { ...orderDetails, order_type_id: +event.target.value };\n setOrderDetails(newData);\n };\n\n const onChangeServices = (id: number) => {\n const selectedService = orderServicesOptions?.find(\n (item: any) => item.id === id\n );\n const key = selectedService?.type;\n const value = !orderDetails[key as keyof OrdersType];\n setOrderDetails(prev => ({\n ...prev,\n [key]: value,\n }));\n };\n\n return (\n <Container>\n <Group>\n <RadioButtonGroup\n heading=\"Service Type\"\n onChange={onChangeServiceType}\n options={serviceTypeOptions || []}\n selectedValue={orderTypeId || ''}\n direction=\"vertical\"\n required={false}\n isDisabled\n />\n </Group>\n <Group>\n <RadioButtonGroup\n heading=\"Service Level \"\n onChange={onChangeServiceLevel}\n options={serviceLevelOptions || []}\n selectedValue={serviceLevelId || ''}\n direction=\"vertical\"\n required={false}\n isDisabled\n />\n </Group>\n <Group>\n <RadioButtonGroup\n heading=\"Delivery Point\"\n onChange={onChangeDeliveryPoint}\n options={deliveryPointOptions || []}\n selectedValue={deliveryPointId || ''}\n direction=\"vertical\"\n required={false}\n isDisabled\n />\n </Group>\n\n {orderServicesOptions?.map((service: any) => {\n const selected = orderDetails[service?.type as keyof OrdersType];\n return (\n <Group>\n <RadioButtonGroup\n heading={service?.type?.replaceAll('_', ' ')}\n onChange={() => onChangeServices(service?.id)}\n options={radioButtonFilterOptions || []}\n selectedValue={selected ? 'true' : 'false'}\n direction=\"vertical\"\n required={false}\n isDisabled\n />\n </Group>\n );\n })}\n </Container>\n );\n}\nconst Container = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n padding: 8px;\n width: 100%;\n align-items: flex-start;\n pointer-events: none;\n`;\n\nconst Group = styled.div`\n flex: 1;\n`;\n\nexport default RadioButtonGroups;\n","import React from 'react';\nimport styled from 'styled-components';\nimport FailureContent from './failure-content';\nimport SuccessContent from './success-content';\nimport RadioButtonGroups from './RadioButtons';\nimport { useActiveTab } from '../../../../store';\n\nfunction OrderInfo() {\n const [activeTab] = useActiveTab();\n return (\n <Container>\n <Top>\n {activeTab === 'success' ? <SuccessContent /> : <FailureContent />}\n </Top>\n <Middle>\n <RadioButtonGroups />\n </Middle>\n {/* <Bottom>\n \n </Bottom> */}\n </Container>\n );\n}\n\n// const DescriptionWrapper = styled.div`\n// display: flex;\n// gap: 20px;\n// width: 100%;\n// `;\n\nconst Middle = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\n// const Bottom = styled.div`\n// display: flex;\n// flex-direction: column;\n// gap: 20px;\n// `;\n\nconst Top = styled.div`\n display: flex;\n gap: 15px;\n width: 100%;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n`;\n\nexport default React.memo(OrderInfo);\n","import React from 'react';\nimport styled from 'styled-components';\nimport SwitchSelector from 'react-switch-selector';\nimport { notification } from 'antd';\n\ninterface ForceDebriefSelectorProps {\n onSwitchChange: (newValue: string) => void;\n}\n\nexport const Options = [\n {\n label: 'Success',\n value: 'success',\n selectedBackgroundColor: '#57DB7A',\n },\n {\n label: 'Failure',\n value: 'failure',\n selectedBackgroundColor: '#E95252',\n },\n];\n\nconst ForceDebriefSelector: React.FC<ForceDebriefSelectorProps> = ({\n onSwitchChange,\n}) => {\n const initialSelectedIndex = Options?.findIndex(\n ({ value }) => value === 'success'\n );\n\n const handleSwitchChange = (selectedOptionValue: unknown) => {\n if (typeof selectedOptionValue === 'string') {\n onSwitchChange(selectedOptionValue);\n } else {\n notification.error({\n message: 'Error',\n description:\n typeof selectedOptionValue ||\n 'Unexpected type for selectedOptionValue:',\n });\n }\n };\n\n return (\n <StyledSwitch>\n <SwitchSelector\n onChange={handleSwitchChange}\n options={Options}\n initialSelectedIndex={initialSelectedIndex}\n backgroundColor={'#cbc8c2'}\n fontColor={'#f5f6fa'}\n optionBorderRadius={30}\n />\n </StyledSwitch>\n );\n};\n\nconst StyledSwitch = styled.div`\n width: 25%;\n height: 40px;\n .react-switch-selector-wrapper {\n background: #777777;\n }\n`;\n\nexport default ForceDebriefSelector;\n","import React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n dropdownStyles,\n Label,\n SelectDropdown,\n} from '@bjsdistribution/dms-component-library';\nimport {\n useEscalationCategory,\n useFailureReason,\n useOrderStaticData,\n} from '../../../../store';\n\nfunction EscalationCategory() {\n const [orderStaticData] = useOrderStaticData();\n const [escalationCategory, setEscalationCategory] = useEscalationCategory();\n const [failureReason] = useFailureReason();\n\n const faultNonFaultReasons = orderStaticData?.fault_non_fault_reasons;\n const escalationTypes = orderStaticData?.escalation_types;\n\n // Use escalation_types directly as category options (same as orders force-debrief)\n const escalationCategoryOptions = escalationTypes?.map(\n (type: any) => ({\n label: type?.name,\n value: type?.id,\n })\n );\n\n useEffect(() => {\n const escTypeId = faultNonFaultReasons?.find(\n (x: any) => x?.order_reason_id === failureReason?.id\n )?.escalation_type_id;\n // escalationCategory.value is now escalation_type.id directly\n const selectedOption = escalationCategoryOptions?.find(\n (option: any) => option?.value === escTypeId\n );\n setEscalationCategory(selectedOption);\n }, [failureReason]);\n\n return (\n <Container>\n <Label label=\"Escalation Category\" />\n <SelectDropdown\n options={escalationCategoryOptions || []}\n styles={{\n ...dropdownStyles,\n control: (styles, state) => ({\n ...styles,\n border: '1px solid #D0D5DD',\n cursor: 'pointer',\n borderRadius: `${\n state.selectProps.menuIsOpen ? '0px 0px 6px 6px' : '6px'\n }`,\n boxShadow: '0px 3px 22px #00000014',\n minHeight: '40px',\n '&:hover': {\n borderColor: '#D0D5DD',\n boxShadow: '0px 3px 22px #00000014',\n },\n }),\n menu: styles => ({\n ...styles,\n marginBottom: '0px',\n borderRadius: '6px 6px 0px 0px',\n boxShadow: '0px 3px 22px #00000014',\n border: '1px solid #D0D5DD',\n borderBottom: '0px',\n }),\n dropdownIndicator: (styles, state) => ({\n ...styles,\n transition: 'all 0.3s ease-in-out',\n transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'null',\n }),\n }}\n placeholder=\"Select Category\"\n menuPlacement=\"top\"\n value={escalationCategory}\n onChange={selectedOption => setEscalationCategory(selectedOption)}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n`;\n\nexport default EscalationCategory;\n","import {\n dropdownStyles,\n Label,\n SelectDropdown,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport {\n useEscalationCategory,\n useEscalationLevel,\n useOrderStaticData,\n} from '../../../../store';\n\nfunction EscalationLevel() {\n const [orderStaticData] = useOrderStaticData();\n const [escalationCategory] = useEscalationCategory();\n const [escalationLevel, setEscalationLevel] = useEscalationLevel();\n const escalationTypes = orderStaticData?.escalation_types;\n\n // Use escalation_types as level options (same as orders force-debrief)\n const escalationLevelOptions = escalationTypes?.map(\n (type: any) => ({\n label: type?.level,\n value: type?.id,\n })\n );\n\n useEffect(() => {\n // escalationCategory.value is now the escalation_type.id directly\n const defaultLevel = escalationLevelOptions?.find(\n (item: any) => item.value === escalationCategory?.value\n );\n\n setEscalationLevel(defaultLevel);\n }, [escalationCategory]);\n\n return (\n <Container>\n <Label label=\"Escalation Level\" />\n <SelectDropdown\n options={escalationLevelOptions || []}\n styles={{\n ...dropdownStyles,\n control: (styles, state) => ({\n ...styles,\n border: '1px solid #D0D5DD',\n cursor: 'pointer',\n borderRadius: `${\n state.selectProps.menuIsOpen ? '0px 0px 6px 6px' : '6px'\n }`,\n boxShadow: '0px 3px 22px #00000014',\n minHeight: '40px',\n '&:hover': {\n borderColor: '#D0D5DD',\n boxShadow: '0px 3px 22px #00000014',\n },\n }),\n menu: styles => ({\n ...styles,\n marginBottom: '0px',\n borderRadius: '6px 6px 0px 0px',\n boxShadow: '0px 3px 22px #00000014',\n border: '1px solid #D0D5DD',\n borderBottom: '0px',\n }),\n dropdownIndicator: (styles, state) => ({\n ...styles,\n transition: 'all 0.3s ease-in-out',\n transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'null',\n }),\n }}\n placeholder=\"Select Level\"\n menuPlacement=\"top\"\n value={escalationLevel}\n onChange={selectedOption => setEscalationLevel(selectedOption)}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n`;\n\nexport default EscalationLevel;\n","import {\n Label,\n SelectDropdown,\n dropdownStyles,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\n\nimport {\n useEscalationCategory,\n useEscalationReason,\n useFailureReason,\n useIsFailureReasonChanged,\n useOrderStaticData,\n} from '../../../../store';\n\nfunction EscalationReason() {\n const [\n escalationReasonState,\n setEscalationReasonState,\n ] = useEscalationReason();\n const [orderStaticData] = useOrderStaticData();\n const [escalationCategory] = useEscalationCategory();\n const [failureReason] = useFailureReason();\n const [\n isFailureReasonChanged,\n setIsFailureReasonChanged,\n ] = useIsFailureReasonChanged();\n\n // escalationCategory.value is now escalation_type.id directly (same as orders force-debrief)\n const escalationTypeId = escalationCategory?.value;\n\n const escalationReasons = orderStaticData?.escalation_reasons?.filter(\n (x: any) => x?.escalation_type_id === escalationTypeId\n );\n\n const escalationReasonsOptions = escalationReasons?.map((item: any) => {\n const matchedItem = orderStaticData?.order_escalation_reasons?.find(\n (x: any) => x?.id === item?.order_reason_id\n );\n if (matchedItem !== undefined) {\n return {\n label: matchedItem?.reason,\n value: matchedItem?.id,\n };\n } else {\n return;\n }\n });\n const filteredEscReasonOptions = escalationReasonsOptions?.filter(\n (option: any) => option !== undefined\n );\n\n useEffect(() => {\n if (isFailureReasonChanged && filteredEscReasonOptions?.length > 0) {\n // ids of both esc reason options and failure reason not matched but their labels matched\n const reason = filteredEscReasonOptions?.find(\n (option: any) => option?.label === failureReason?.label\n );\n setEscalationReasonState(reason);\n setIsFailureReasonChanged(false);\n }\n if (!isFailureReasonChanged && filteredEscReasonOptions?.length > 0) {\n setEscalationReasonState(filteredEscReasonOptions[0]);\n }\n }, [escalationCategory]);\n\n return (\n <Container>\n <Label label=\"Escalation Reason\" />\n <SelectDropdown\n options={filteredEscReasonOptions || []}\n styles={{\n ...dropdownStyles,\n control: (styles, state) => ({\n ...styles,\n border: '1px solid #D0D5DD',\n cursor: 'pointer',\n borderRadius: `${\n state.selectProps.menuIsOpen ? '0px 0px 6px 6px' : '6px'\n }`,\n boxShadow: '0px 3px 22px #00000014',\n minHeight: '40px',\n '&:hover': {\n borderColor: '#D0D5DD',\n boxShadow: '0px 3px 22px #00000014',\n },\n }),\n menu: styles => ({\n ...styles,\n marginBottom: '0px',\n borderRadius: '6px 6px 0px 0px',\n boxShadow: '0px 3px 22px #00000014',\n border: '1px solid #D0D5DD',\n borderBottom: '0px',\n }),\n dropdownIndicator: (styles, state) => ({\n ...styles,\n transition: 'all 0.3s ease-in-out',\n transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'null',\n }),\n }}\n placeholder=\"Select Reason\"\n menuPlacement=\"top\"\n value={escalationReasonState}\n onChange={selectedOption => setEscalationReasonState(selectedOption)}\n />\n </Container>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n`;\n\nexport default EscalationReason;\n","import React from 'react';\nimport EscalationCategory from './EscalationCategory';\nimport EscalationLevel from './EscalationLevel';\nimport EscalationReason from './EscalationReason';\n\nfunction Escalation() {\n return (\n <div style={{ display: 'flex', gap: '15px', width: '100%' }}>\n <EscalationCategory />\n <EscalationLevel />\n <EscalationReason />\n </div>\n );\n}\n\nexport default Escalation;\n","import { FlagAlert } from '@bjsdistribution/dms-component-library';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { format, parseISO } from 'date-fns';\nimport { useOrderDetails } from '../../../../store';\nimport { useRouteDetails } from '../../../store';\n\nfunction OrderTemplate() {\n const [orderDetails] = useOrderDetails();\n const [routesDetails] = useRouteDetails();\n const [alertVisibility, setAlertVisibility] = useState({\n isAllocated: true,\n isOrderStatusNote: true,\n });\n\n const isRouteId = orderDetails?.order_routes?.route_id != null;\n //on close alert functionality\n const onCloseAlert = (alertType: string) => {\n setAlertVisibility(prev => ({\n ...prev,\n [alertType]: false,\n }));\n };\n\n return (\n <StyledAlert>\n <>\n {alertVisibility.isAllocated && (\n <>\n {isRouteId ? (\n <FlagAlert\n type=\"info\"\n title=\"\"\n description={\n <>\n <Title>Allocated To Route :</Title>\n {routesDetails?.route_name || ''}\n {routesDetails?.route_lock\n ? `*Locked* on ${routesDetails?.route_detail?.vehicle_number} `\n : ''}{' '}\n | Crew:\n {routesDetails?.crew1 || 'N/A'} &{' '}\n {routesDetails?.crew2 || 'N/A'} |{' '}\n {routesDetails?.route_date\n ? format(\n parseISO(routesDetails?.route_date),\n 'dd/MM/yyyy'\n )\n : ''}\n </>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isAllocated')}\n />\n ) : (\n <FlagAlert\n type=\"info\"\n title=\"\"\n description={\n <>\n <Title>Allocated To Route :</Title>{' '}\n <Info>Route not allocated</Info>\n </>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isAllocated')}\n />\n )}\n </>\n )}\n </>\n\n {alertVisibility.isOrderStatusNote && (\n <>\n {orderDetails?.order_status_note && (\n <>\n <FlagAlert\n type=\"info\"\n title=\"\"\n description={\n <>\n <Title>Order Status Note : </Title>\n {orderDetails?.order_status_note}\n </>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isOrderStatusNote')}\n />\n </>\n )}\n </>\n )}\n </StyledAlert>\n );\n}\nconst StyledAlert = styled.div`\n display: contents;\n gap: 15px;\n`;\n\nconst Title = styled.span`\n color: #6396e5;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n`;\n\nconst Info = styled.span`\n color: #6a7378;\n font-family: Lato;\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n`;\n\nexport default OrderTemplate;\n","import {\n FlagAlert,\n formatUtcToLocal,\n} from '@bjsdistribution/dms-component-library';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { useFlagRefId } from '../order-actions/store';\nimport { useCurrentAction } from '../store';\nimport { useClientPortal } from '../../store';\nfunction FlagTemplate({ data, dismissFlags }: any) {\n const [, setSelectedFlag] = useFlagRefId();\n const [, setCurrentAction] = useCurrentAction();\n const [isCustomerPortal] = useClientPortal();\n //\n const openModal = () => {\n setCurrentAction('view-flag');\n };\n const handleClick = (Id: number) => {\n setSelectedFlag(Id);\n openModal();\n };\n\n const titleColor = data?.status === 'SD' ? '#36A053' : '#3a3630';\n return (\n <StyledAlert>\n <FlagAlert\n type={data?.status === 'AD' ? 'info' : 'success'}\n title={\n <>\n <StyledTitle color={titleColor}>\n Flag : {data?.is_private ? 'Private' : 'Public'}{' '}\n <StyledLink onClick={() => handleClick(data.id)}>\n {data?.id} - {data?.flag_type}{' '}\n </StyledLink>{' '}\n {data?.status === 'AD' ? 'Unresolved' : 'Resolved on'}{' '}\n {data?.status == 'SD' ? (\n <>\n {`${formatUtcToLocal(data?.resolved_at)?.date} ${\n formatUtcToLocal(data?.resolved_at)?.time\n }`}{' '}\n by {data?.resolved_by}{' '}\n </>\n ) : null}\n </StyledTitle>\n </>\n }\n subtitle=\"\"\n description={\n isCustomerPortal ? (\n <span dangerouslySetInnerHTML={{ __html: data?.description }} />\n ) : (\n `${data?.description}`\n )\n }\n showOkButton={false}\n onClose={() => dismissFlags(data?.id)}\n />\n </StyledAlert>\n );\n}\n\nconst StyledAlert = styled.div``;\n\nconst StyledLink = styled.span`\n color: var(--contextual-blue, #6396e5);\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n cursor: pointer;\n`;\n\nconst StyledTitle = styled.span<{ color: string }>`\n color: ${({ color }) => color};\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n`;\n\nexport default FlagTemplate;\n","import React from 'react';\nimport styled from 'styled-components';\nimport OrderTemplate from './OrderTemplate';\nimport FlagTemplate from '../../../../notification/FlagTemplate';\nimport { useTasksData } from '../../../store';\n\nfunction Tabs({ dismissFlags }: any) {\n const [taskData] = useTasksData();\n\n return (\n <>\n <Content>\n <Container className=\"tab-content\">\n <OrderTemplate />\n {taskData?.map((item: any, index: any) => (\n <FlagTemplate key={index} data={item} dismissFlags={dismissFlags} />\n ))}\n </Container>\n </Content>\n </>\n );\n}\nconst Container = styled.div`\n gap: 15px;\n display: grid;\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n`;\nexport default Tabs;\n","import { useAxios } from '@bjsdistribution/dms-component-library';\nimport React, { useEffect } from 'react';\nimport Tabs from './Tabs';\nimport styled from 'styled-components';\nimport { useRouteDetails, useTasksData } from '../../../store';\nimport { useOrderDetails } from '../../../../store';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: [];\n setShouldPerformAction: boolean;\n}\n\nfunction FDNotification() {\n const [taskData, setTasksData] = useTasksData();\n const [orderData] = useOrderDetails();\n const routeId = orderData?.order_routes?.route_id;\n const [, setRouteDetails] = useRouteDetails();\n\n //Unresolved API\n const {\n data: fetchedUnresolvedData,\n loading: unresolvedLoading,\n fetchData: callUnresolvedTaskApi,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [\n { field: 'department', op: '=', value: 'debrief' },\n {\n field: 'order_id',\n op: '=',\n value: `${orderData?.id}`,\n },\n ],\n });\n\n //flags data set\n useEffect(() => {\n if (fetchedUnresolvedData && fetchedUnresolvedData?.data) {\n setTasksData(fetchedUnresolvedData?.data);\n }\n }, [unresolvedLoading, fetchedUnresolvedData]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (orderData?.id == null) return;\n\n try {\n await callUnresolvedTaskApi();\n } catch (error) {\n console.error('Error while fetching order-related data:', error);\n }\n };\n\n fetchData();\n }, [orderData?.id]);\n\n const {\n fetchData: fetchRouteDetails,\n data: routesData,\n loading: routesDataLoading,\n } = useAxios<{\n data: any;\n }>({\n endpoint: `/route/debrief/`,\n method: 'GET',\n });\n useEffect(() => {\n if (routeId !== undefined && routeId !== null) {\n fetchRouteDetails({\n endPointQuery: routeId,\n });\n } else {\n setRouteDetails([]);\n }\n }, [routeId]);\n\n useEffect(() => {\n if (routesData?.data?.length > 0) {\n const routeData: any = routesData?.data[0];\n setRouteDetails(routeData);\n }\n }, [routesDataLoading]);\n\n return (\n <>\n <Section>\n {unresolvedLoading ? (\n <Loader>\n <Spinner />\n <Text>Fetching Notifications...</Text>\n </Loader>\n ) : taskData?.length > 0 || orderData ? (\n <TabsWrapper>\n <Tabs />\n </TabsWrapper>\n ) : (\n 'No Notifications Found'\n )}\n </Section>\n </>\n );\n}\n\nconst Loader = styled.div`\n align-items: center;\n justify-content: center;\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nconst Spinner = styled.div`\n border: 4px solid rgba(0, 0, 0, 0.1);\n border-left-color: #3a3630;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n animation: spin 1s linear infinite;\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\nconst Section = styled.div`\n display: flex;\n flex-direction: column;\n gap: 14px;\n background: #ffffff;\n border-radius: 12px;\n padding: 10px;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n border: 1px solid #e0e0e0;\n`;\n\nconst TabsWrapper = styled.div`\n /* min-height: 200px; */\n max-height: 350px;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &:hover {\n scrollbar-width: thin;\n }\n\n &::-webkit-scrollbar {\n width: 0;\n }\n\n &:hover::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.5);\n }\n`;\n\nconst Text = styled.div`\n color: var(--tonal-brown-651, #6a7378);\n font-family: Lato;\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n`;\nexport default FDNotification;\n","import React from 'react';\nimport {\n BackgroundModal,\n CancelAndCompleteAction,\n WarningIcon,\n} from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport { getBaseUrlSymbol } from '../../../utils';\n\ninterface IProps {\n setConfirmationModal: React.Dispatch<React.SetStateAction<boolean>>;\n onProceed: any;\n}\n\nconst BaseChargeConfirmationModal = (props: IProps) => {\n const baseUrlSymbol = getBaseUrlSymbol();\n\n const onCancel = () => {\n // window.scrollTo({ top: 0, behavior: 'smooth' });\n props?.setConfirmationModal(false);\n };\n\n const onComplete = () => {\n props?.setConfirmationModal(false);\n props?.onProceed();\n };\n\n return (\n <BackgroundModal {...props}>\n <MainContainer>\n <Container>\n <IconContainer>\n <WarningIcon />\n </IconContainer>\n <Title>{`Base Charge Exceeds ${baseUrlSymbol}200`}</Title>\n </Container>\n <CustomCancelAndCompleteAction\n cancelLabel=\"Amend\"\n completeLabel=\"Proceed\"\n onCancel={onCancel}\n onComplete={onComplete}\n />\n </MainContainer>\n </BackgroundModal>\n );\n};\n\nconst CustomCancelAndCompleteAction = styled(CancelAndCompleteAction)`\n justify-content: center;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n`;\n\nconst Title = styled.span`\n font-family: 'Roboto', sans-serif;\n font-size: 20px;\n font-weight: 900;\n line-height: 32px;\n margin: 0;\n padding: 0;\n text-transform: uppercase;\n`;\n\nconst IconContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 54px;\n height: 54px;\n padding: 14px;\n border-radius: 50%;\n background: #feba301a;\n border: 10px solid #feba305e;\n`;\n\nconst MainContainer = styled.div`\n width: 400px;\n min-height: 248px;\n padding: 24px;\n border-radius: 12px;\n background: #ffffff;\n box-shadow: 0px 20px 24px -4px #10182814;\n display: flex;\n flex-direction: column;\n gap: 30px;\n align-items: center;\n`;\n\nexport default BaseChargeConfirmationModal;\n","import React, { useEffect, useState } from 'react';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport {\n useActiveTab,\n useChargesState,\n useCurrentAction,\n useCustomerDetails,\n useCustomerInfo,\n useEscalationCategory,\n useEscalationLevel,\n useEscalationReason,\n useFailureReason,\n useGlobalEscData,\n useGlobalStateHitAuditLog,\n useGlobalStateHitOrder,\n useNewStatus,\n useOrderCancelReason,\n useOrderCustomersList,\n useOrderDetails,\n useOrderHoldReason,\n usePrevOrderDetails,\n useProductDetails,\n} from '../../../store';\nimport OrderCharges from './charges/order-charges';\nimport CollectionAddOns from './charges/collection-add-ons';\nimport DisposalCharge from './charges/disposal-charges';\nimport styled from 'styled-components';\nimport BaseCharges from './charges/base-charge';\nimport DeliveryAddOns from './charges/delivery-add-ons';\nimport AdhocSection from './charges/adhoc';\nimport OrderInfo from './order-info';\nimport ForceDebriefSelector from './Selector';\nimport {\n Checkbox,\n Label,\n useApiHook,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport Escalation from './escalation';\nimport FDNotification from './notifications';\n\nimport { compareOrderDetailsStates, filterObject } from '../../../utils';\nimport { AdhocCharge, ApiResponse, OrdersType } from '../../../types';\nimport { notification } from 'antd';\nimport BaseChargeConfirmationModal from './BaseChargeConfirmationModal';\nimport { v4 as uuidv4 } from 'uuid';\n\ninterface IProps {\n callOrdersApi: any;\n callOrderStatusApi: any;\n callOrderAlertsApi: any;\n}\n\nfunction ForceDebriefModal(props: IProps) {\n const [customerInfo, setCustomerInfo] = useCustomerInfo();\n const [allCustomers, setAllCustomers] = useOrderCustomersList();\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n const [, setCurrentAction] = useCurrentAction();\n\n const [activeTab, setActiveTab] = useActiveTab();\n const handleSwitchChange = (newValue: any) => setActiveTab(newValue);\n const [chargesState, setCharges] = useChargesState();\n const [inputValue, setInputValue] = useState<Record<string, string>>({}); // only for UI purpose\n const [staticData, setDebriefStaticData] = useState([]);\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails, setPrevOrderDetails] = usePrevOrderDetails();\n const [isEscalationEnabled, setIsEscalationEnabled] = useState<boolean>(true);\n const [newStatus, setNewStatus] = useNewStatus();\n const [cancellationReason, setCancellationReason] = useOrderCancelReason();\n const [orderHold, setOrderHold] = useOrderHoldReason();\n const [failureReason, setFailureReason] = useFailureReason();\n const [escalationCategory, setEscalationCategory] = useEscalationCategory();\n const [escalationLevel, setEscalationLevel] = useEscalationLevel();\n const [escalationReason, setEscalationReason] = useEscalationReason();\n const [, setRecallOrders] = useGlobalStateHitOrder();\n const [, setRecallAuditLog] = useGlobalStateHitAuditLog();\n const [, setGlobalEscData] = useGlobalEscData();\n\n const [showAmountConfirmModal, setShowAmountConfirmModal] = useState<boolean>(\n false\n );\n\n const [productdata] = useProductDetails();\n const sortedProductData = productdata?.sort((a: any, b: any) => {\n return a?.status === b?.status ? 0 : a?.status ? -1 : 1;\n });\n\n const isDeleted = Array.isArray(sortedProductData)\n ? sortedProductData?.filter(item => item?.status === true)\n : [];\n\n //customers API\n const [orderData] = useOrderDetails();\n const customersData = orderData;\n const id = customersData?.customer_id;\n\n //Customers list API call\n const {\n data: fetchCustomerData,\n loading: customerLoading,\n fetchData,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/customer/list`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [{ field: 'status', op: '=', value: '1' }],\n });\n\n useEffect(() => {\n if (fetchCustomerData && fetchCustomerData?.data) {\n const res = fetchCustomerData?.data;\n setAllCustomers(res);\n }\n }, [fetchCustomerData, customerLoading]);\n\n useEffect(() => {\n fetchData();\n }, []);\n\n // For API Call\n const [customerData, setCustomerData] = useCustomerDetails();\n const { data: fetchedData, loading, setShouldPerformAction } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `customers/${id}`,\n method: 'GET',\n performAction: false,\n });\n\n useEffect(() => {\n if (id) {\n setShouldPerformAction(true);\n }\n }, [id]);\n\n useEffect(() => {\n if (fetchedData && fetchedData?.data) {\n const requiredData = fetchedData?.data;\n setCustomerData(requiredData);\n }\n }, [fetchedData, loading]);\n const selectedCustomer = allCustomers?.find(\n (customer: any) => customer?.id === customerData?.id\n );\n\n const adhocChargesFields: AdhocCharge[] = Array.from({ length: 9 }, () => ({\n id: uuidv4(),\n adhoc_charges_description: '',\n adhoc_charges: 0,\n }));\n\n const {\n fetchData: fetchAllDebriefStaticData,\n data: debriefStaticData,\n loading: debriefLoading,\n } = useAxios<{\n data: any;\n }>({\n endpoint: `/finance/debrief/getData/all/`,\n method: 'GET',\n });\n\n useEffect(() => {\n setCharges(prev => ({\n ...prev,\n adhoc_charges: adhocChargesFields,\n }));\n\n // call debrief static api for getting base charges type\n fetchAllDebriefStaticData();\n }, []);\n\n useEffect(() => {\n if (debriefStaticData?.data) {\n setDebriefStaticData(debriefStaticData?.data[0]);\n }\n }, [debriefLoading]);\n\n const { fetchData: callUpdateOrderAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/update/`,\n method: 'PUT',\n });\n\n const { fetchData: callForceDebriefApi } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/invoices/force-debrief/`,\n method: 'POST',\n });\n\n const { fetchData: createEscalation } = useAxios<{\n data: any;\n }>({\n endpoint: `/orders/escalations/create/`,\n method: 'POST',\n });\n\n const initialValues = () => {\n setOrderDetails(prevOrderDetails);\n setNewStatus('');\n setCancellationReason('');\n setOrderHold('');\n setFailureReason('');\n setEscalationCategory('');\n setEscalationLevel('');\n setEscalationReason('');\n setActiveTab('success');\n };\n\n const closeModal = () => {\n initialValues();\n setCurrentAction(undefined);\n };\n\n const isDifferent = () => {\n const keysToRemovefromOrders = [\n 'order_locked',\n 'order_communications',\n 'updated_at',\n 'updated_by',\n ];\n const filteredOrderDetails = filterObject(\n orderDetails,\n keysToRemovefromOrders\n );\n const filteredPrevOrderDetails = filterObject(\n prevOrderDetails,\n keysToRemovefromOrders\n );\n\n const orderDetailsSorted = JSON.stringify(filteredOrderDetails);\n const prevOrderDetailsSorted = JSON.stringify(filteredPrevOrderDetails);\n const isSame = orderDetailsSorted === prevOrderDetailsSorted;\n return !isSame;\n };\n\n const debriefchargesApi = async (finalPayload: any, failurePayload: any) => {\n try {\n const responseForceDebrief = (await callForceDebriefApi({\n payload: {\n debrief_data: finalPayload,\n ...(activeTab === 'failure'\n ? { failure_data: failurePayload }\n : { failure_data: {} }),\n },\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (responseForceDebrief.code === 200) {\n notification.success({\n message: 'Success',\n description: `${responseForceDebrief?.message}`,\n });\n }\n } catch (err) {}\n };\n\n const ordersUpdateApi = async () => {\n const ordersApiPayload = compareOrderDetailsStates(\n prevOrderDetails,\n orderDetails\n );\n\n type ServiceKey =\n | 'assemble'\n | 'disassemble'\n | 'unpack_items'\n | 'collect_disposal'\n | 'take_packaging_away'\n | 'assembly_type';\n\n const serviceKeys: ServiceKey[] = [\n 'assemble',\n 'disassemble',\n 'unpack_items',\n 'collect_disposal',\n 'take_packaging_away',\n 'assembly_type',\n ];\n\n for (const key of serviceKeys) {\n if (key in ordersApiPayload) {\n (ordersApiPayload as Record<ServiceKey, any>)[key] =\n ordersApiPayload[key as keyof typeof ordersApiPayload];\n } else if (key in orderDetails) {\n (ordersApiPayload as Record<ServiceKey, any>)[key] =\n orderDetails[key as keyof OrdersType];\n }\n }\n\n if (\n ordersApiPayload?.assemble === false &&\n ordersApiPayload?.disassemble === false\n ) {\n ordersApiPayload.assembly_type = null;\n }\n\n try {\n let response = (await callUpdateOrderAPI({\n payload: [ordersApiPayload],\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (response.code === 200 && response?.data?.length > 0) {\n notification.success({\n message: 'Success',\n description: `${response?.message}`,\n });\n setOrderDetails(response?.data[0]);\n setPrevOrderDetails(response?.data[0]);\n setCustomerInfo({\n recipient_name: response?.data[0]?.order_recipient?.recipient_name,\n postcode: response?.data[0]?.order_recipient?.postcode,\n });\n await setRecallOrders(true);\n }\n } catch (err) {\n setOrderDetails(prevOrderDetails);\n }\n };\n\n const escalationCreateApi = async (escalationPayload: any) => {\n try {\n const apiResponse = (await createEscalation({\n payload: escalationPayload,\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n if (apiResponse?.code === 200) {\n notification.success({\n message: 'Success',\n description: `${apiResponse?.message}`,\n });\n\n setGlobalEscData(apiResponse?.data);\n }\n } catch (err) {}\n };\n\n const onSubmit = async () => {\n setRecallOrders(false);\n const ordersPayload = {\n consignment: orderDetails?.consignment,\n order_number: orderDetails?.order_number,\n customer_id: customerData?.id,\n customer_name: customerData?.customer_name,\n client_name: selectedCustomer?.client_name,\n recipient_name: orderDetails?.order_recipient?.recipient_name,\n order_id: orderDetails?.id,\n order_type: orderDetails?.order_type?.type,\n legacy_order_id: orderDetails?.gsit_order_id,\n postcode: orderDetails?.order_recipient?.postcode,\n ...(activeTab === 'failure' && { failure_new_status: newStatus }),\n };\n const adhocCharges = chargesState?.adhoc_charges\n ?.filter(\n item =>\n !(item.adhoc_charges === 0 && item.adhoc_charges_description === '')\n )\n .map(({ adhoc_charges_description, adhoc_charges }) => ({\n adhoc_charges_description,\n adhoc_charges,\n }));\n const chargesPayload: any = { ...chargesState };\n chargesPayload.adhoc_charges = adhocCharges;\n chargesPayload.debrief_status = activeTab;\n if (activeTab === 'success') {\n delete chargesPayload.new_order_status;\n }\n\n const failurePayload = {\n failure_reason_id: failureReason?.id,\n ...(newStatus === 'Cancelled' && {\n cancelled_reason_id: cancellationReason?.value,\n }),\n ...(newStatus === 'On Hold' && { hold_reason_id: orderHold?.value }),\n failure_order_status: newStatus,\n status: activeTab,\n };\n\n const finalPayload = {\n ...ordersPayload,\n status: activeTab,\n charges: [chargesPayload],\n ...(activeTab === 'failure' && { failureData: failurePayload }),\n }; // check adhoc charges if 0 and description is empty then\n\n // APPLY ALL VALIDATIONS HERE BEFORE CALLING ANY API\n\n if (activeTab === 'failure') {\n if (!failureReason?.id) {\n notification.error({\n message: 'Error',\n description: 'Failure reason is mandatory',\n });\n return;\n }\n\n if (newStatus?.length === 0) {\n notification.error({\n message: 'Error',\n description: 'New status is mandatory',\n });\n return;\n }\n\n if (newStatus === 'On Hold' && orderHold?.length === 0) {\n notification.error({\n message: 'Error',\n description: 'Hold reason is mandatory',\n });\n return;\n }\n\n if (newStatus === 'Cancelled' && cancellationReason?.length === 0) {\n notification.error({\n message: 'Error',\n description: 'Cancel reason is mandatory',\n });\n return;\n }\n }\n\n // Validate escalation fields early – before any API calls\n if (activeTab === 'failure' && isEscalationEnabled) {\n if (\n !escalationCategory?.value ||\n !escalationLevel?.value ||\n !escalationReason?.value\n ) {\n notification.error({\n message: 'Error',\n description:\n 'Escalation Category, Level and Reason are all mandatory',\n });\n return;\n }\n }\n\n if (isDifferent()) {\n await ordersUpdateApi();\n }\n\n if (activeTab === 'failure' && isEscalationEnabled) {\n const escalationPayload = [\n {\n order_id: orderDetails?.id,\n escalation_reason_id: escalationReason?.value,\n escalation_category_id: escalationCategory?.value,\n escalation_level_id: escalationLevel?.value,\n is_deleted: false,\n route_id: orderDetails?.order_routes?.route_id,\n },\n ];\n\n await escalationCreateApi(escalationPayload);\n }\n\n await debriefchargesApi(finalPayload, failurePayload);\n await setRecallAuditLog(true);\n // call status api and alerts api\n initialValues();\n await props?.callOrderStatusApi();\n await props?.callOrderAlertsApi();\n await props?.callOrdersApi();\n // closeModal();\n };\n\n const onForceDebrief = () => {\n if (chargesState?.base_charge > 200) {\n setShowAmountConfirmModal(true);\n } else {\n onSubmit();\n }\n };\n\n return (\n <OrderActionModal\n headerTitle=\"Order Debrief\"\n onCloseHeader={closeModal}\n infoText={infoText}\n onSubmit={onForceDebrief}\n submitBtnTitle={'Complete Order'}\n // isSubmitDisabled={true}\n maxWidth=\"95vw\"\n headerActions={\n <ForceDebriefSelector onSwitchChange={handleSwitchChange} />\n }\n >\n <MainContainer>\n <FDNotification />\n <ContentContainer>\n <OrderInfo />\n </ContentContainer>\n <ContentContainer>\n <Container>\n <Label\n label=\"Delivery Instructions\"\n htmlFor=\"deliveryInstruction\"\n />\n <Text>{orderDetails?.delivery_instructions || 'N/A'}</Text>\n </Container>\n\n <Container>\n <Label label=\"Other Instructions\" htmlFor=\"otherInstruction\" />\n <Text>{orderDetails?.other_instructions || 'N/A'}</Text>\n </Container>\n </ContentContainer>\n {/* ORDER-PRODUCT SECTION */}\n {isDeleted?.length > 0 && (\n <ProductDiv>\n <Container>\n {isDeleted?.map((item, index) => (\n <ProductContainer key={index}>\n <Status>{'*'}</Status>\n <Status>{item?.status_value || 'N/A'}</Status>\n <Status>{item?.order_product_type?.type || 'N/A'}</Status>\n <Status>{item?.sku || 'N/A'}</Status>\n <Status>{`Part 1 of 1`}</Status>\n <Status>{'Weight' + ':' + item?.weight || 'N/A'}</Status>\n <Status>{'Cube' + ':' + item?.cube || 'N/A'}</Status>\n </ProductContainer>\n ))}\n </Container>\n </ProductDiv>\n )}\n\n {/* CHARGES SECTION */}\n <ContentContainer>\n <ContainerInner>\n <BaseCharges\n inputValue={inputValue}\n setInputValue={setInputValue}\n staticData={staticData}\n />\n <DeliveryAddOns\n inputValue={inputValue}\n setInputValue={setInputValue}\n />\n </ContainerInner>\n <ContainerInner>\n <CollectionAddOns\n inputValue={inputValue}\n setInputValue={setInputValue}\n />\n <DisposalCharge\n inputValue={inputValue}\n setInputValue={setInputValue}\n />\n </ContainerInner>\n <OrderCharges inputValue={inputValue} setInputValue={setInputValue} />\n <AdhocSection />\n </ContentContainer>\n {activeTab === 'failure' && (\n <ContentContainer style={{ flexDirection: 'column', gap: '10px' }}>\n <div style={{ display: 'flex', gap: '10px' }}>\n Escalation\n <Checkbox\n checked={isEscalationEnabled}\n onChange={event => setIsEscalationEnabled(event.target.checked)}\n />\n </div>\n <Escalation />\n </ContentContainer>\n )}\n </MainContainer>\n {showAmountConfirmModal && (\n <BaseChargeConfirmationModal\n setConfirmationModal={setShowAmountConfirmModal}\n onProceed={onSubmit}\n />\n )}\n </OrderActionModal>\n );\n}\n\nconst Status = styled.span`\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n font-weight: 400;\n text-transform: capitalize;\n color: #3a3630;\n`;\n\nconst ProductContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n`;\n\nconst MainContainer = styled.div`\n padding: 10px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n`;\n\nconst ContainerInner = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst Text = styled.div`\n color: #363a30;\n font-size: 14px;\n white-space: break-spaces;\n`;\n\nexport const ContentContainer = styled.div`\n display: flex;\n padding: 12px;\n flex-direction: row;\n align-items: flex-start;\n gap: 40px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n width: 100%;\n white-space: nowrap;\n`;\n\nexport const ProductDiv = styled.div`\n display: flex;\n padding: 12px;\n flex-direction: row;\n align-items: flex-start;\n gap: 40px;\n flex: 1 0 0;\n border-radius: 15px;\n background: #f8fafc;\n width: 100%;\n white-space: nowrap;\n min-height: 60px;\n overflow: scroll;\n max-height: 150px;\n`;\nexport default React.memo(ForceDebriefModal);\n","import { Input } from '@bjsdistribution/dms-component-library';\nimport React, { InputHTMLAttributes } from 'react';\nimport styled from 'styled-components';\n\nfunction GenericInput(\n props: InputHTMLAttributes<HTMLInputElement> & { hasError?: boolean }\n) {\n return <StyledInput {...props} />;\n}\n\nconst StyledInput = styled(Input)<{ hasError?: boolean }>`\n height: 30px;\n border: 1px solid ${({ hasError }) => (hasError ? 'red' : '#ccc')};\n &:hover {\n background: #ffffff;\n outline: none;\n border-color: #7b7874;\n }\n &:focus {\n border-color: ${({ hasError }) => (hasError ? 'red' : '#888')};\n }\n`;\n\nexport default GenericInput;\n","import React, { useEffect, useState } from 'react';\nimport {\n useCurrentAction,\n useCustomerInfo,\n useOrderDetails,\n usePrevOrderDetails,\n} from '../../../store';\nimport OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';\nimport { notification } from 'antd';\nimport { Label, useAxios } from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport GenericInput from '../../../../../common/custom-input/CustomInput';\nimport { compareOrderDetailsStates } from '../../../utils';\nimport { ApiResponse } from '../../../types';\nimport { useClientPortal } from '../../../../store';\n\nfunction What3WordsModal(props: any) {\n const w3wRegex = /^\\/{0,}[^0-9`~!@#$%^&*()+\\-_=[{\\]}\\\\|'<,.>?/\";:£§º©®\\s]{1,}[・.。][^0-9`~!@#$%^&*()+\\-_=[{\\]}\\\\|'<,.>?/\";:£§º©®\\s]{1,}[・.。][^0-9`~!@#$%^&*()+\\-_=[{\\]}\\\\|'<,.>?/\";:£§º©®\\s]{1,}$/;\n const [, setCurrentAction] = useCurrentAction();\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [prevOrderDetails, setPrevOrderDetails] = usePrevOrderDetails();\n const [customerInfo] = useCustomerInfo();\n const [w3wError, setW3wError] = useState('');\n const [isClientPortal] = useClientPortal();\n const orderRecipient = orderDetails?.order_recipient || {};\n const [currentWhat3Words, setWhat3Words] = useState();\n const [localW3W, setLocalW3W] = useState('');\n const [localLat, setLocalLat] = useState(orderRecipient?.latitude || '');\n const [localLong, setLocalLong] = useState(orderRecipient?.longitude || '');\n\n const closeModal = () => setCurrentAction(undefined);\n\n const cleanW3WAddress = (w3wStr: string) => {\n return w3wStr.replace(/^\\/+/, '');\n };\n\n const validateInput = (value: string) => {\n if (value.trim()) {\n const isValid = w3wRegex.test(value);\n setW3wError(\n isValid ? '' : 'Please enter a valid input (format: word.word.word)'\n );\n } else {\n setW3wError('Input cannot be empty or only spaces');\n }\n };\n\n const onChangeW3W = (e: React.ChangeEvent<HTMLInputElement>) => {\n const rawVal = e.target.value;\n const val = cleanW3WAddress(rawVal);\n validateInput(rawVal); // still validate raw input for dots, etc.\n setLocalW3W(val);\n };\n\n const onChangeLatitude = (e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalLat(e.target.value);\n };\n\n const onChangeLongitude = (e: React.ChangeEvent<HTMLInputElement>) => {\n setLocalLong(e.target.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (['e', 'E', '+', '-'].includes(e.key)) {\n e.preventDefault();\n }\n };\n\n const { fetchData: callUpdateOrderAPI } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/update/`,\n method: 'PUT',\n });\n\n const { fetchData: getWhat3Words } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/orders/coordinates_to_w3w/?`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (\n orderDetails?.order_recipient?.latitude &&\n orderDetails?.order_recipient?.longitude\n ) {\n getWhat3Words({\n endPointQuery: `latitude=${orderDetails?.order_recipient?.latitude}&longitude=${orderDetails?.order_recipient?.longitude}`,\n }).then((response: any) => {\n console.log(response?.data);\n setWhat3Words(response?.data?.words);\n });\n }\n }, [\n orderDetails?.order_recipient?.latitude,\n orderDetails?.order_recipient?.longitude,\n ]);\n\n const onSave = async () => {\n const updatedOrderDetails = {\n ...orderDetails,\n order_recipient: {\n ...(orderDetails?.order_recipient || {}),\n what_3words_address: localW3W,\n latitude: localLat,\n longitude: localLong,\n },\n };\n\n const payload = compareOrderDetailsStates(\n prevOrderDetails,\n updatedOrderDetails\n );\n\n let response = (await callUpdateOrderAPI({\n payload: [payload],\n })) as {\n code: number | null;\n error?: string | null | undefined;\n [key: string]: any;\n };\n\n if (response.code === 200 && response?.data?.length > 0) {\n notification.success({\n message: 'Success',\n description: `${response?.message}`,\n });\n\n await props?.callOrdersApi();\n setOrderDetails(response?.data[0]);\n setPrevOrderDetails(response?.data[0]);\n closeModal();\n } else {\n notification.error({\n message: 'Update Failed',\n description: response?.error || 'Unknown error',\n });\n\n setOrderDetails(prevOrderDetails);\n }\n };\n\n const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n\n const isDifferent = () => {\n const original = orderRecipient || {};\n return (\n localW3W !== (original.what_3words_address || '') ||\n localLat !== (original.latitude || '') ||\n localLong !== (original.longitude || '')\n );\n };\n\n useEffect(() => {\n setLocalLat(orderRecipient?.latitude || '');\n setLocalLong(orderRecipient?.longitude || '');\n }, [orderRecipient]);\n\n return (\n <OrderActionModal\n headerTitle=\"WHAT3WORDS\"\n onCloseHeader={closeModal}\n onSubmit={onSave}\n showAdditionalInfo\n infoText={infoText}\n isSubmitDisabled={isClientPortal ? true : !isDifferent() || !!w3wError}\n submitBtnTitle=\"Save Details\"\n >\n <Section>\n <FieldRow>\n <WordsSection>\n <Label label=\"Words\" />\n <WordInputWrapper>\n <CustomInput\n name=\"w3w\"\n type=\"text\"\n placeholder=\"Format: word.word.word\"\n value={localW3W}\n onChange={onChangeW3W}\n disabled={isClientPortal}\n />\n\n {w3wError && <ErrorText>{w3wError}</ErrorText>}\n </WordInputWrapper>\n\n <CurrentText>\n <strong>Current:</strong>{' '}\n <a\n href={`https://what3words.com/${currentWhat3Words}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {currentWhat3Words}\n </a>\n </CurrentText>\n </WordsSection>\n </FieldRow>\n </Section>\n\n <Section>\n <CoordRow>\n <Coordinate>\n <Label label=\"Latitude\" htmlFor=\"lat\" />\n <CustomInput\n name=\"lat\"\n type=\"number\"\n placeholder=\"Lat\"\n value={localLat}\n onChange={onChangeLatitude}\n onKeyDown={handleKeyDown}\n />\n </Coordinate>\n <Coordinate>\n <Label label=\"Longitude\" htmlFor=\"long\" />\n\n <CustomInput\n name=\"long\"\n type=\"number\"\n placeholder=\"Long\"\n value={localLong}\n onChange={onChangeLongitude}\n onKeyDown={handleKeyDown}\n />\n </Coordinate>\n </CoordRow>\n </Section>\n </OrderActionModal>\n );\n}\n\nconst WordsSection = styled.div`\n display: flex;\n flex-direction: row;\n gap: 15px;\n align-items: center;\n`;\n\nconst WordInputWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n`;\n\nconst CurrentText = styled.div`\n font-size: 13px;\n color: #444;\n white-space: nowrap;\n\n a {\n color: #1677ff;\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: underline;\n }\n`;\n\nconst ErrorText = styled.span`\n color: red;\n font-size: 0.85rem;\n margin-top: 4px;\n`;\n\nconst Section = styled.div`\n padding: 15px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nconst FieldRow = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n`;\n\nconst CoordRow = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 14px;\n`;\n\nconst Coordinate = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\n\nconst CustomInput = styled(GenericInput)`\n width: 100%;\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n &:focus-visible {\n outline: none;\n }\n`;\n\nexport default What3WordsModal;\n","import React, { useEffect } from 'react';\nimport AddResources from './actions/add-resources';\nimport styled from 'styled-components';\nimport {\n useCurrentAction,\n useOrderAlertsData,\n useOrderDetails,\n useOrderId,\n usePrevOrderDetails,\n useProductDetails,\n useProductDetailsCopy,\n useStatusDetails,\n} from '../store';\nimport SplitOrder from './actions/split-order';\nimport CancelOrder from './actions/cancel-order';\nimport ConfirmOrder from './actions/confirm-order';\nimport SendSmsModal from './actions/send-sms/SendSmsModal';\nimport SendEmailModal from './actions/send-email/SendEmailModal';\nimport ChangeCustomerAccModal from './actions/change-customer-account/ChangeCustomerAccModal';\nimport HoldOrderModal from './actions/hold-order/HoldOrderModal';\nimport UnholdOrder from './actions/unhold-order/UnholdOrder';\nimport ViewReminderModal from '../view-reminder/ViewReminder';\n// import OrderLock from './actions/order-lock';\nimport ViewFlag from '../flags-action-modal/index';\nimport ReleaseOrder from './actions/release-order/ReleaseOrder';\nimport ClearBookingStatus from './actions/clear-booking-status/ClearBookingStatus';\nimport UncancelOrder from './actions/uncancel-order/UncancelOrder';\nimport RemoveFromRoute from './actions/remove-from-route/RemoveFromRoute';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { ApiResponse, OrdersType } from '../types';\nimport { useLoading } from '../../order-daily-overview/store/store';\nimport { useReminderNotiData, useTasksData } from './store';\nimport ChargeLog from './actions/charge-log';\nimport ReminderModal from './actions/create-task-reminder';\nimport TaskModal from './actions/create-task-reminder/TaskModal';\nimport ForceDebriefModal from './actions/force-debrief/ForceDebriefModal';\nimport { useNavigate } from 'react-router-dom';\nimport What3WordsModal from './actions/what3words/What3WordsModal.tsx';\n\nfunction OrderActions() {\n const [currentAction, setCurrentAction] = useCurrentAction();\n const [orderId] = useOrderId();\n const [, setOrderDetails] = useOrderDetails();\n const [, setPrevOrderDetails] = usePrevOrderDetails();\n const [, setOrderStatus] = useStatusDetails();\n const [, setOrderAlertsData] = useOrderAlertsData();\n const [, setProductDetails] = useProductDetails();\n const [, setProductDetailsCopy] = useProductDetailsCopy();\n const [, setLoading] = useLoading();\n const [, setTasksData] = useTasksData();\n const [, setReminderNotifyData] = useReminderNotiData();\n const navigate = useNavigate();\n // call orders api\n\n const { fetchData: callOrdersApi, loading, data: fetchedData } = useAxios<{\n data: OrdersType[];\n }>({\n endpoint: `/orders/${orderId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n setLoading(loading);\n\n if (fetchedData && fetchedData?.data) {\n const requiredData = fetchedData?.data;\n setOrderDetails(requiredData[0]);\n setPrevOrderDetails(requiredData[0]);\n setCurrentAction(undefined);\n }\n\n if (\n (fetchedData && fetchedData?.data === null) ||\n fetchedData?.data?.length === 0\n ) {\n setCurrentAction(undefined);\n }\n } catch (error) {\n //@ts-ignore\n\n if (error?.response?.status === 404) {\n navigate('/404');\n } else {\n console.error('Error fetching order data:', error);\n }\n }\n };\n\n fetchData();\n }, [loading]);\n\n // orders api ends\n\n // call order products api start\n\n const {\n data: productsData,\n loading: orderProductsLoading,\n fetchData: callOrderProductsApi,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/order/order_products/${orderId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (productsData && productsData?.data?.length > 0) {\n setProductDetails(productsData?.data);\n setProductDetailsCopy(productsData?.data);\n } else {\n setProductDetails([]);\n setProductDetailsCopy([]);\n }\n }, [orderProductsLoading]);\n\n // call order products api end\n\n // call alerts api\n\n const {\n data: alertsData,\n fetchData: callOrderAlertsApi,\n loading: alertsApiLoading,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/alerts/?order_id=${orderId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (alertsData && alertsData?.data) {\n setOrderAlertsData(alertsData?.data);\n }\n }, [alertsApiLoading]);\n\n // alerts api ends\n\n // call live status api\n\n const {\n fetchData: fetchStatusData,\n data: statusData,\n loading: statusDataLoading,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/get_live_status/${orderId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (statusData && statusData?.data) {\n setOrderStatus(statusData?.data);\n }\n }, [statusDataLoading]);\n\n // Call Task Get Api\n const {\n fetchData: callUnresolvedTaskApi,\n data: fetchedUnresolvedData,\n loading: unresolvedLoading,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [{ field: 'order_id', op: '=', value: orderId }],\n });\n\n useEffect(() => {\n if (fetchedUnresolvedData && fetchedUnresolvedData?.data) {\n setTasksData(fetchedUnresolvedData?.data);\n }\n }, [unresolvedLoading]);\n\n // Task Api Ends\n\n // reminder api starts here\n\n //reminder get\n const {\n data: fetchedReminderData,\n loading: reminderLoading,\n fetchData: callReminderApi,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/reminder/get/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [{ field: 'order_id', op: '=', value: orderId }],\n showLoader: false,\n });\n\n useEffect(() => {\n if (fetchedReminderData && fetchedReminderData?.data) {\n setReminderNotifyData(fetchedReminderData?.data);\n const filteredReminders = fetchedReminderData?.data?.filter(\n (reminder: any) => reminder?.status === false\n );\n\n const filteredOverDueReminders = fetchedReminderData?.data?.filter(\n (reminder: any) =>\n reminder?.status === false &&\n new Date(reminder?.due_datetime).getTime() < new Date().getTime()\n );\n\n // Store them correctly in localStorage\n localStorage.setItem(\n 'filteredRemindersCount',\n JSON.stringify(filteredReminders?.length)\n );\n localStorage.setItem(\n 'filteredOverDueReminders',\n JSON.stringify(filteredOverDueReminders?.length)\n );\n }\n }, [reminderLoading]);\n\n const renderContent = () => {\n switch (currentAction) {\n case 'add-resources':\n return <AddResources />;\n case 'split-order':\n return <SplitOrder />;\n case 'release-order':\n return <ReleaseOrder />;\n\n case 'cancel-order':\n return (\n <CancelOrder\n callOrdersApi={callOrdersApi}\n callOrderStatusApi={fetchStatusData}\n callOrderAlertsApi={callOrderAlertsApi}\n callOrderProductsApi={callOrderProductsApi}\n />\n );\n case 'uncancel-order':\n return (\n <UncancelOrder\n callOrdersApi={callOrdersApi}\n callOrderStatusApi={fetchStatusData}\n callOrderAlertsApi={callOrderAlertsApi}\n callOrderProductsApi={callOrderProductsApi}\n />\n );\n case 'confirm-order':\n return (\n <ConfirmOrder\n callOrdersApi={callOrdersApi}\n callOrderStatusApi={fetchStatusData}\n callOrderAlertsApi={callOrderAlertsApi}\n />\n );\n case 'send-sms':\n return <SendSmsModal />;\n\n case 'force-debrief':\n return (\n <ForceDebriefModal\n callOrdersApi={callOrdersApi}\n callOrderStatusApi={fetchStatusData}\n callOrderAlertsApi={callOrderAlertsApi}\n />\n );\n case 'send-email':\n return <SendEmailModal />;\n case 'change-customer-account':\n return <ChangeCustomerAccModal callOrdersApi={callOrdersApi} />;\n\n case 'hold-order':\n return (\n <HoldOrderModal\n callOrdersApi={callOrdersApi}\n callOrderAlertsApi={callOrderAlertsApi}\n callOrderStatusApi={fetchStatusData}\n callUnresolvedTaskApi={callUnresolvedTaskApi}\n />\n );\n case 'create-reminder':\n return (\n <ReminderModal\n callUnresolvedTaskApi={callUnresolvedTaskApi}\n callReminderApi={callReminderApi}\n />\n );\n case 'create-task':\n return (\n <TaskModal\n callUnresolvedTaskApi={callUnresolvedTaskApi}\n callReminderApi={callReminderApi}\n />\n );\n case 'charge-log':\n return <ChargeLog />;\n case 'unhold-order':\n return (\n <UnholdOrder\n callOrdersApi={callOrdersApi}\n callOrderAlertsApi={callOrderAlertsApi}\n callUnresolvedTaskApi={callUnresolvedTaskApi}\n callOrderStatusApi={fetchStatusData}\n />\n );\n case 'view-reminder':\n return <ViewReminderModal callReminderApi={callReminderApi} />;\n // case 'order-lock':\n // return <OrderLock />;\n case 'view-flag':\n return <ViewFlag />;\n case 'clear-date':\n return <ClearBookingStatus callOrderAlertsApi={callOrderAlertsApi} />;\n case 'remove-from-route':\n return <RemoveFromRoute callOrderAlertsApi={callOrderAlertsApi} />;\n case 'what3Words':\n return <What3WordsModal callOrdersApi={callOrdersApi} />;\n default:\n return null;\n }\n };\n return <Container>{renderContent()}</Container>;\n}\n\nconst Container = styled.div``;\n\nexport default OrderActions;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useCustomerInfo, useGlobalEscData } from '../../store';\n\nimport { Skeleton } from 'antd';\n\nconst Details = () => {\n // const [orderDetails] = useOrderDetails();\n const [customerInfo] = useCustomerInfo();\n const recipient = customerInfo?.recipient_name || '';\n const postcodeShow = customerInfo?.postcode || '';\n const returnActionString = customerInfo?.return_action?.length \n ? `${customerInfo.return_action.join(', ')} - ` \n : '';\n\n const [globalEscData] = useGlobalEscData();\n\n const isLoading = !recipient && !postcodeShow;\n\n return (\n <DetailsContainer>\n <Typo>\n {isLoading ? (\n <Skeleton.Input active size=\"small\" style={{ width: 350, borderRadius: 8 }} />\n ) : (\n `RETURN - ${returnActionString}${recipient} - ${postcodeShow}`\n )}\n {globalEscData?.length > 0 && !isLoading && (\n <EscInfo>\n {`${globalEscData[0]?.escalation_type?.level} (${globalEscData[0]?.escalation_type?.name})`}\n </EscInfo>\n )}\n </Typo>\n </DetailsContainer>\n );\n};\n\nconst DetailsContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n > svg {\n transform: scale(0.6);\n }\n`;\n\nconst Typo = styled.div`\n display: flex;\n flex-direction: row;\n gap: 15px;\n align-items: center;\n font-size: 20px;\n font-style: normal;\n font-weight: 600;\n line-height: 32px;\n text-transform: uppercase;\n margin: 0;\n padding: 0;\n\n @media screen and (max-width: 1220px) {\n font-size: 14px;\n }\n`;\n\nconst Name = styled.div`\n /* heading/h3-subHeader */\n font-family: 'Roboto', sans-serif;\n font-size: 20px;\n font-style: normal;\n font-weight: 900;\n line-height: 32px; /* 160% */\n text-transform: uppercase;\n`;\n\nconst EscInfo = styled(Name)`\n color: #6396e5;\n font-size: 16px;\n`;\n\nexport default Details;\n","import { ChargeLogData } from './types';\n\nexport const bjsMenu = [\n {\n label: 'Add Order Resources',\n value: 'add-resources',\n },\n {\n label: 'Split Order',\n value: 'split-order',\n },\n];\n\nexport const optionsMenuClientPortal = [\n { label: 'Create Task', value: 'create-task' },\n {\n label: 'On Hold',\n value: 'hold-order',\n },\n {\n label: 'Un Hold',\n value: 'unhold-order',\n },\n {\n label: 'Cancel',\n value: 'cancel-order',\n },\n {\n label: 'Un-Cancel',\n value: 'uncancel-order',\n },\n];\n\nexport const optionsMenu = [\n { label: 'Create Reminder', value: 'create-reminder' },\n { label: 'Create Task', value: 'create-task' },\n { label: 'Confirm', value: 'confirm-order' },\n { label: 'Hold', value: 'hold-order' },\n { label: 'Cancel', value: 'cancel-order' },\n { label: 'Un Hold', value: 'unhold-order' },\n {\n label: 'Remove from Route',\n value: 'remove-from-route',\n },\n {\n label: 'Un-Cancel',\n value: 'uncancel-order',\n },\n {\n label: 'Clear Booking Status',\n value: 'clear-date',\n },\n { label: 'Charge Log', value: 'charge-log' },\n { label: 'Force Debrief', value: 'force-debrief' },\n];\n\nexport const PrintMenu = [\n {\n label: 'Proof of Delivery',\n value: 'proofofdelivery',\n },\n {\n label: 'Return Labels',\n value: 'returnlabels',\n },\n {\n label: 'Return Cover Notes',\n value: 'returncovernote',\n },\n];\n\nexport const orderResources = [\n {\n date: '15/01/2024 06:22:47',\n updated_at: '15/01/2024 06:22:47',\n type: 'Workflow',\n category: 'Epod',\n reference: 'Success Note',\n id: 1,\n },\n {\n date: '22/01/2024 07:22:47',\n updated_at: '22/01/2024 07:22:47',\n type: 'Workflow',\n category: 'Epod',\n reference: 'Success Note',\n id: 2,\n },\n {\n date: '22/01/2024 07:22:47',\n updated_at: '22/01/2024 07:22:47',\n type: 'Workflow',\n category: 'Epod',\n reference: 'Success Note',\n id: 3,\n },\n {\n date: '22/01/2024 07:22:47',\n updated_at: '22/01/2024 07:22:47',\n type: 'Workflow',\n category: 'Epod',\n reference: 'Success Note',\n id: 4,\n },\n {\n date: '22/01/2024 07:22:47',\n updated_at: '22/01/2024 07:22:47',\n type: 'Workflow',\n category: 'Epod',\n reference: 'Success Note',\n id: 5,\n },\n {\n date: '22/01/2024 07:22:47',\n updated_at: '22/01/2024 07:22:47',\n type: 'Workflow',\n category: 'Epod',\n reference: 'Success Note',\n id: 6,\n },\n];\n\nexport const HoldOptionMenu = [\n {\n label: 'STOCK RECEIPT / DAMAGED - Awaiting Client Instructions',\n value: 'STOCK RECEIPT / DAMAGED - Awaiting Client Instructions',\n },\n {\n label: 'STOCK RECEIPT / EXTRA ITEMS - Awaiting Client Instructions',\n value: 'STOCK RECEIPT / EXTRA ITEMS - Awaiting Client Instructions',\n },\n {\n label: 'STOCK RECEIPT / NO STOCK - Awaiting Client Instructions',\n value: 'STOCK RECEIPT / NO STOCK - Awaiting Client Instructions',\n },\n {\n label: 'STOCK RECEIPT / DAMAGED - Awaiting Client Instructions',\n value: 'STOCK RECEIPT / DAMAGED - Awaiting Client Instructions',\n },\n {\n label: 'STOCK RECEIPT / NO STOCK - CANX',\n value: 'STOCK RECEIPT / NO STOCK - CANX',\n },\n {\n label: 'STOCK RECEIPT / RE-ALLOCATION',\n value: 'STOCK RECEIPT / RE-ALLOCATION',\n },\n {\n label: 'CONTACT DETAILS / MISSING TEL NUMBER',\n value: 'CONTACT DETAILS / MISSING TEL NUMBER',\n },\n {\n label: 'CONTACT DETAILS / INCORRECT ADDRESS',\n value: 'CONTACT DETAILS / INCORRECT ADDRESS',\n },\n];\n\nexport const initialData: ChargeLogData[] = [\n {\n id: 1,\n date: '17/05/2024',\n description: 'Delivery Success - 17/05/2024',\n amount: '0.00',\n status: '2024-06-02 - Moreham Wood Direct - 34113',\n },\n {\n id: 2,\n date: '17/05/2024',\n description: 'Delivery Success - 17/05/2024',\n amount: '0.45',\n status: '2024-06-02 - Moreham Wood Direct - 34113',\n },\n {\n id: 3,\n date: '17/05/2024',\n description: 'Delivery Success - 17/05/2024',\n amount: '0.00',\n status: '',\n },\n {\n id: 4,\n date: '17/05/2024',\n description: 'Delivery Success - 17/05/2024',\n amount: '0.78',\n status: 'Awaiting Invoice',\n },\n {\n id: 5,\n date: '17/05/2024',\n description: 'Delivery Success - 17/05/2024',\n amount: '0.108',\n status: 'Awaiting',\n },\n];\n","import React from 'react';\n\ninterface ArrowDownIconProps {\n fill?: string;\n}\n\nconst ArrowDownIcon: React.FC<ArrowDownIconProps> = ({ fill = '#3A3630' }) => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"24\" height=\"24\" fill={fill} />\n <path\n opacity=\"0.4\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.69104 9.8912C6.82604 9.75637 7.00903 9.68063 7.19984 9.68063C7.39064 9.68063 7.57363 9.75637 7.70864 9.8912L11.9998 14.1824L16.291 9.8912C16.4275 9.76402 16.608 9.69478 16.7946 9.69807C16.9811 9.70136 17.1591 9.77693 17.291 9.90884C17.4229 10.0408 17.4985 10.2187 17.5018 10.4053C17.5051 10.5918 17.4358 10.7723 17.3086 10.9088L12.5086 15.7088C12.3736 15.8436 12.1906 15.9194 11.9998 15.9194C11.809 15.9194 11.626 15.8436 11.491 15.7088L6.69104 10.9088C6.5562 10.7738 6.48047 10.5908 6.48047 10.4C6.48047 10.2092 6.5562 10.0262 6.69104 9.8912Z\"\n fill=\"#3A3630\"\n />\n </svg>\n );\n};\n\nexport default ArrowDownIcon;\n","import React from 'react';\nimport styled from 'styled-components';\nimport {\n useCurrentAction,\n useOrderDetails,\n useOrderId,\n // useOrderId,\n useStatusDetails,\n} from '../../../store';\nimport { optionsMenu, optionsMenuClientPortal } from '../../../fakedata';\nimport {\n useCreateReminderPayload,\n useCreateTaskPayload,\n} from '../../../order-actions/store';\nimport { Dropdown, Space } from 'antd';\nimport ArrowDownIcon from '../../../../../assets/icons/ArrowDownIcon';\nimport { useClientPortal } from '../../../../store';\n\nfunction Options() {\n const [, setCurrentAction] = useCurrentAction();\n const [orderId] = useOrderId();\n const [, setReminderPayload] = useCreateReminderPayload();\n const [, setTaskPayload] = useCreateTaskPayload();\n const [orderStatus] = useStatusDetails();\n const [orderDetails] = useOrderDetails();\n const [isClientPortal] = useClientPortal();\n\n const clientPortalMenuItems = isClientPortal\n ? optionsMenuClientPortal\n : optionsMenu;\n\n const handleSelectChange = (selectedOption: any) => {\n setCurrentAction(selectedOption);\n\n if (selectedOption === 'create-reminder') {\n setReminderPayload((prevState: any) => ({\n ...prevState,\n order_id: orderId,\n }));\n } else if (selectedOption === 'create-task') {\n setTaskPayload((prevState: any) => ({\n ...prevState,\n order_id: orderId,\n }));\n }\n };\n\n const isReleased = orderStatus[0]?.released;\n // const routedValue = orderStatus[0]?.routed;\n const isRouted = orderStatus[0]?.routed && orderDetails?.order_routes?.id;\n const isOrderOnHold = orderDetails?.status === 'OO';\n const isOrderCancelled = orderDetails?.status === 'CO';\n\n const filteredOptions = clientPortalMenuItems?.filter(option => {\n let shouldExclude = false;\n\n if (isOrderOnHold && option.value === 'hold-order') {\n shouldExclude = true;\n }\n if (isOrderCancelled && option.value === 'cancel-order') {\n shouldExclude = true;\n }\n if (!isOrderCancelled || isOrderOnHold) {\n if (option.value === 'uncancel-order') {\n shouldExclude = true;\n }\n }\n if (!isReleased && option.value === 'unrelease-order') {\n shouldExclude = true;\n }\n if (!isOrderOnHold && option.value === 'unhold-order') {\n shouldExclude = true;\n }\n\n if (isOrderOnHold && option.value === 'confirm-order') {\n shouldExclude = true;\n }\n\n if (!isRouted && option.value === 'log-service-refusal') {\n shouldExclude = true;\n }\n\n if (isRouted && option.value === 'clear-date') {\n shouldExclude = true;\n }\n\n // if (routedValue && option.value === 'remove-from-route') {\n // shouldExclude = true;\n // }\n\n return !shouldExclude;\n });\n\n const menuItems = {\n items: filteredOptions?.map(option => ({\n key: option.value,\n label: (\n <div onClick={() => handleSelectChange(option.value)}>\n {option.label}\n </div>\n ),\n })),\n };\n\n return (\n <Option>\n <Dropdown menu={menuItems} trigger={['hover']}>\n <a onClick={e => e.preventDefault()} style={{ cursor: 'pointer' }}>\n <StyledSpace>\n OPTIONS\n <ArrowDownIcon fill={'#f0f2f2'} />\n </StyledSpace>\n </a>\n </Dropdown>\n </Option>\n );\n}\nconst Option = styled.div``;\n\nconst StyledSpace = styled(Space)`\n .ant-space-item {\n color: #6a7378;\n text-align: center;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n }\n`;\n\nexport default Options;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { PrintMenu } from '../../fakedata';\nimport { useOrderDetails } from '../../store';\nimport { Dropdown, Space } from 'antd';\nimport ArrowDownIcon from '../../../../assets/icons/ArrowDownIcon';\nimport { getBaseEndpoint } from '@bjsdistribution/dms-component-library';\n\nfunction Print() {\n const [orderDetails] = useOrderDetails();\n const gsitId = orderDetails?.gsit_order_id;\n\n const orderId = useMemo(() => {\n return orderDetails?.id;\n }, [orderDetails]);\n\n const getEnvironment = ():\n | 'development'\n | 'release_us'\n | 'release_uk'\n | 'staging' => {\n const projectEnv = process.env.REACT_APP_PROJECT_ENV;\n const apiPath = process.env.REACT_APP_API_PATH;\n\n if (apiPath === 'https://us.dms.api.bjshomedelivery.com') {\n return 'release_us';\n }\n if (apiPath === 'https://development.dms.api.bjshomedelivery.com') {\n return 'development';\n }\n if (apiPath === 'https://staging.dms.api.bjshomedelivery.com') {\n return 'staging';\n }\n\n if (projectEnv === 'release_uk') {\n return 'release_uk';\n }\n if (projectEnv === 'release_us') {\n return 'release_us';\n }\n if (projectEnv === 'staging') {\n return 'staging';\n }\n return 'development';\n };\n\n const getBaseUrl = (): string => {\n const environment = getEnvironment();\n switch (environment) {\n case 'release_uk':\n case 'release_us':\n return 'https://us.toolbox.bjshomedelivery.com/api/v1/gsit';\n case 'staging':\n return 'https://staging.toolbox.bjshomedelivery.com/api/v1/gsit';\n default:\n return 'https://development.toolbox.bjshomedelivery.com/api/v1/gsit';\n }\n };\n\n const getUrl = (option: string) => {\n const val = option?.toLowerCase()?.replaceAll(' ', '');\n const baseUrl = getBaseUrl();\n\n if (!gsitId) {\n console.error('Missing orderId. Cannot generate Return Labels URL.');\n return '';\n }\n if (val === 'returnlabels') {\n return `${baseUrl}/generate_labels?pdf=true&product_type=Return&order_id=${gsitId}`;\n } else {\n return '';\n }\n };\n\n const handleSelectChange = (selectedOption: any) => {\n const selectedValue = selectedOption?.value;\n const baseEndpoint = getBaseEndpoint();\n if (selectedValue) {\n //return\n if (selectedValue === 'returncovernote') {\n window.open(\n `${baseEndpoint}/orders/return_cover_notes/?order_id=${orderId}`,\n '_blank'\n );\n //proof\n } else if (selectedValue === 'proofofdelivery') {\n window.open(\n `${baseEndpoint}/orders/generate_note/?order_id=${orderId}&output_format=pdf`,\n '_blank'\n );\n } else {\n const url = getUrl(selectedValue);\n window.open(url, '_blank');\n }\n }\n };\n\n // const optionToLabelKey: Record<string, keyof typeof orderDetails.labels> = {\n // proofofdelivery: 'deliver',\n // returnlabels: 'return',\n // returncovernote: 'collect',\n // };\n\n // const isOptionDisabled = (optionValue: string) => {\n // const labels = orderDetails?.labels || {};\n // const labelKey = optionToLabelKey[optionValue];\n\n // if (!labelKey) return false;\n // return !labels[labelKey];\n // };\n\n const filteredOptions = PrintMenu?.map((option: any) => ({\n key: option.value,\n label: option.label,\n value: option.value,\n }));\n\n const menuItems = {\n items: filteredOptions?.map((option: any) => {\n // const disabled = isOptionDisabled(option.value);\n\n return {\n key: option.value,\n label: (\n <div\n onClick={e => {\n e.stopPropagation();\n // if (!disabled) {\n handleSelectChange(option);\n // }\n }}\n // style={{\n // color: disabled ? '#bfbfbf' : undefined,\n // cursor: disabled ? 'not-allowed' : 'pointer',\n // }}\n >\n {option.label}\n </div>\n ),\n // disabled,\n };\n }),\n };\n\n return (\n <Container>\n <Dropdown menu={menuItems} trigger={['hover']}>\n <a onClick={e => e.preventDefault()} style={{ cursor: 'pointer' }}>\n <StyledSpace>\n PRINT\n <ArrowDownIcon fill={'#f0f2f2'} />\n </StyledSpace>\n </a>\n </Dropdown>\n </Container>\n );\n}\n\nconst Container = styled.div``;\n\nconst StyledSpace = styled(Space)`\n .ant-space-item {\n color: #6a7378;\n text-align: center;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n }\n`;\n\nexport default Print;\n","import React from 'react';\nimport { bjsMenu } from '../../../fakedata';\nimport { useCurrentAction, useStatusDetails } from '../../../store';\nimport { useClientPortal } from '../../../../store';\nimport ArrowDownIcon from '../../../../../assets/icons/ArrowDownIcon';\nimport { Dropdown, Space } from 'antd';\nimport styled from 'styled-components';\n\nfunction BjsMenuDropDown() {\n const [, setCurrentAction] = useCurrentAction();\n const handleSelectChange = (selectedOption: any) => {\n setCurrentAction(selectedOption);\n };\n\n const [orderStatus] = useStatusDetails();\n const [clientPortal] = useClientPortal();\n\n if (clientPortal) {\n return null; // hide completely for client portal!\n }\n\n const isReleased = orderStatus[0]?.released;\n\n const filteredOptions = bjsMenu.filter(option => {\n if (isReleased) {\n return option.value !== 'release-order';\n } else {\n return option;\n }\n });\n\n const menuItems = {\n items: filteredOptions?.map(option => ({\n key: option.value,\n label: (\n <div onClick={() => handleSelectChange(option.value)}>\n {option.label}\n </div>\n ),\n })),\n };\n\n return (\n <Dropdown menu={menuItems} trigger={['hover']}>\n <a onClick={e => e.preventDefault()} style={{ cursor: 'pointer' }}>\n <StyledSpace>\n BJS MENU\n <ArrowDownIcon fill={'#f0f2f2'} />\n </StyledSpace>\n </a>\n </Dropdown>\n );\n}\n\nconst StyledSpace = styled(Space)`\n .ant-space-item {\n color: #6a7378;\n text-align: center;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n }\n`;\n\nexport default BjsMenuDropDown;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport OptionsDropDown from './OptionsDropDown';\nimport Print from '../../../general-information/dropdowns/Print';\nimport BjsMenuDropDown from './MenuDropDown';\nimport {\n errorAtom,\n useAtom,\n useCurrentAction,\n useOrderDetails,\n} from '../../../store';\n// components\n\nfunction DropDowns() {\n const [orderDetails] = useOrderDetails();\n const [, setCurrentAction] = useCurrentAction();\n const [errors] = useAtom(errorAtom);\n const [hasNotifiedMobile, setHasNotifiedMobile] = useState(false);\n const [hasNotifiedEmail, setHasNotifiedEmail] = useState(false);\n\n const isEmailId = orderDetails?.order_recipient?.contact_email;\n // const isContactNum = orderDetails?.order_recipient?.contact_home;\n const VALID_UK_MOBILE_REGEX = /^(07\\d{8,12}|447\\d{7,11})$/;\n const VALID_IRISH_MOBILE_REGEX = /^(08[35679]\\d{7}|3538[35679]\\d{7}|\\+3538[35679]\\d{7})$/;\n\n const isValidUKMobile = (number: string | null | undefined): boolean =>\n typeof number === 'string' && VALID_UK_MOBILE_REGEX.test(number);\n const isValidIrishMobile = (number: string | null | undefined): boolean =>\n typeof number === 'string' && VALID_IRISH_MOBILE_REGEX.test(number);\n const isValidMobile = (number: string | null | undefined): boolean =>\n isValidUKMobile(number) || isValidIrishMobile(number);\n\n const contactMobile = orderDetails?.order_recipient?.contact_mobile;\n const contactHome = orderDetails?.order_recipient?.contact_home;\n const contactWork = orderDetails?.order_recipient?.contact_work;\n\n const allContacts = [contactMobile, contactHome, contactWork];\n const hasValidMobile = allContacts.some(isValidMobile);\n\n const actions = [];\n\n if (hasValidMobile) {\n if (errors?.mobileError) {\n if (!hasNotifiedMobile) {\n setHasNotifiedMobile(true);\n }\n } else {\n actions.push({\n label: 'Send SMS',\n onClick: () => setCurrentAction('send-sms'),\n });\n }\n }\n\n if (isEmailId) {\n if (errors?.emailError) {\n if (!hasNotifiedEmail) {\n setHasNotifiedEmail(true);\n }\n } else {\n actions.push({\n label: 'Send Email',\n onClick: () => setCurrentAction('send-email'),\n });\n }\n }\n\n return (\n <>\n <DashBoardWrapper>\n <BjsMenuDropDown />\n <OptionsDropDown />\n <Print />\n {actions?.map((action, index) => (\n <FontContainer\n key={index}\n onClick={action.onClick}\n style={{ cursor: 'pointer' }}\n >\n {action?.label}\n </FontContainer>\n ))}\n </DashBoardWrapper>\n </>\n );\n}\n\nconst DashBoardWrapper = styled.section`\n padding: 0 5px;\n display: flex;\n align-self: center;\n gap: 10px;\n align-items: center;\n`;\n\nexport const FontContainer: any = styled.div<{ disabled?: boolean }>`\n color: #6a7378;\n text-align: center;\n font-family: 'lato', sans-serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n text-transform: uppercase;\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n @media screen and (max-width: 1210px) {\n font-size: 11px;\n line-height: 12px;\n }\n`;\n\nexport default DropDowns;\n","import React from 'react';\nimport styled from 'styled-components';\nimport DropDowns from './dropdowns/DropDowns';\n\nconst ActionsMenu = () => {\n return (\n <Flex>\n <DropDowns />\n </Flex>\n );\n};\nconst Flex = styled.div`\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n display: flex;\n height: 34px;\n padding: 1px;\n align-items: flex-start;\n border-radius: 20px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n background: #f0f2f2;\n cursor: pointer;\n`;\n\nexport default ActionsMenu;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Details from './right-side-filters/Details';\nimport ActionsMenu from './left-side-filters/ActionsMenu';\n\nconst DetailsFilters = () => {\n return (\n <Flex>\n <Details />\n <ActionsMenu />\n </Flex>\n );\n};\n\nconst Flex = styled.div`\n border-radius: 40px;\n border: 1px solid rgba(0, 0, 0, 0.08);\n background: linear-gradient(180deg, #fff 0%, #f9fcff 100%);\n\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n /* z-index: 9999; */\n display: flex;\n padding: 10px;\n flex-direction: row;\n gap: 10px;\n align-self: stretch;\n position: relative;\n margin-bottom: -71px;\n width: 97%;\n margin-left: 21px;\n top: -132px;\n justify-content: space-between;\n`;\nexport default DetailsFilters;\n","import { FlagAlert } from '@bjsdistribution/dms-component-library';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { useOrderNotify } from '../order-actions/store';\nimport { useOrderStaticData } from '../store';\nimport { useClientPortal } from '../../store';\n\nfunction OrderTemplate({ orderDetails, routeInfoData }: any) {\n const [, setOrderCount] = useOrderNotify();\n // const precall = false;\n const [orderStaticData] = useOrderStaticData();\n const statusVal = routeInfoData?.status_value;\n const [isClientPortal] = useClientPortal();\n const unholdReasons = orderStaticData?.cancellation_reasons?.map(\n (x: any) => ({\n id: x?.id,\n reason: x?.reason,\n })\n );\n\n const getReasonById = (id: number) => {\n if (!unholdReasons || unholdReasons?.length === 0) {\n return 'Reason not found';\n }\n const match = unholdReasons?.find((item: any) => item?.id === id);\n return match ? match?.reason : 'Reason not found';\n };\n\n const reason = getReasonById(orderDetails?.order_cancellations?.reason_id);\n\n const [alertVisibility, setAlertVisibility] = useState({\n isHoldVisible: true,\n isCompleted: true,\n isOutstanding: true,\n isAwaitingConfirmation: true,\n isAwaitingRoute: true,\n isCancelled: true,\n isEnroute: true,\n isPreCall: true,\n isConfirmed: true,\n isPostcode: true,\n isSubcontracted: true,\n isRouted: true,\n isOnSite: true,\n isFailed: true,\n });\n\n // useEffect(() => {\n // if (precall) {\n // setOrderCount(prevCount => prevCount + 1);\n // }\n // }, [precall]);\n\n //on close alert functionality\n const onCloseAlert = (alertType: string) => {\n setAlertVisibility(prev => ({\n ...prev,\n [alertType]: false,\n }));\n setOrderCount(0);\n };\n\n return (\n <>\n {/* order_red_cross_alerts */}\n {!isClientPortal && routeInfoData?.order_red_cross_alerts?.length > 0 && (\n <FlagAlert\n type=\"error\"\n title=\"\"\n description={\n <FlagsStyle>\n <div className=\"redCross\">\n <div\n className=\"spanStyle\"\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_red_cross_alerts,\n }}\n />\n </div>\n </FlagsStyle>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isPostcode')}\n />\n )}\n\n {statusVal == 'on hold' && alertVisibility?.isHoldVisible && (\n <StyledAlert>\n <FlagAlert\n type=\"warn\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={''}\n showOkButton={false}\n onClose={() => onCloseAlert('isHoldVisible')}\n />\n </StyledAlert>\n )}\n {statusVal == 'complete' && alertVisibility.isCompleted && (\n <StyledAlert>\n <FlagAlert\n type=\"success\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={''}\n showOkButton={false}\n onClose={() => onCloseAlert('isCompleted')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'outstanding' && alertVisibility.isOutstanding && (\n <StyledAlert>\n <FlagAlert\n type=\"release\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isOutstanding')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'awaiting confirmation' &&\n alertVisibility.isAwaitingConfirmation && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isAwaitingConfirmation')}\n />\n </StyledAlert>\n )}\n {statusVal == 'awaiting route' && alertVisibility.isAwaitingRoute && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isAwaitingRoute')}\n />\n </StyledAlert>\n )}\n {statusVal == 'cancelled' && alertVisibility.isCancelled && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={reason}\n showOkButton={false}\n onClose={() => onCloseAlert('isCancelled')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'confirmed' && alertVisibility.isConfirmed && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isConfirmed')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'subcontracted' && alertVisibility.isSubcontracted && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isRouted')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'enroute' && alertVisibility.isEnroute && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isEnroute')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'routed' && alertVisibility.isRouted && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isRouted')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'precalled' && alertVisibility.isPreCall && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isPreCall')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'on site' && alertVisibility.isOnSite && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isOnSite')}\n />\n </StyledAlert>\n )}\n\n {statusVal == 'failed' && alertVisibility.isFailed && (\n <StyledAlert>\n <FlagAlert\n type=\"info\"\n title={\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_info_alerts,\n }}\n ></div>\n }\n description={``}\n showOkButton={false}\n onClose={() => onCloseAlert('isFailed')}\n />\n </StyledAlert>\n )}\n\n {/* order_warnings_alerts */}\n {!isClientPortal && routeInfoData?.order_warnings_alerts?.length > 0 && (\n <FlagAlert\n type=\"warn\"\n title=\"\"\n description={\n <FlagsStyle>\n <div className=\"\">\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_warnings_alerts,\n }}\n />\n </div>\n </FlagsStyle>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isPostcode')}\n />\n )}\n\n {/* order_green_check_alerts */}\n {!isClientPortal && routeInfoData?.order_green_check_alerts?.length > 0 && (\n <FlagAlert\n type=\"success\"\n title=\"\"\n description={\n <FlagsStyle>\n <div className=\"\">\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.order_green_check_alerts,\n }}\n />\n </div>\n </FlagsStyle>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isPostcode')}\n />\n )}\n\n {!isClientPortal &&\n routeInfoData?.same_postcode_orders &&\n alertVisibility.isPostcode && (\n <FlagAlert\n type=\"info\"\n title=\"\"\n description={\n <FlagsStyle>\n <div className=\"postcode-alert-content\">\n <div\n dangerouslySetInnerHTML={{\n __html: routeInfoData?.same_postcode_orders,\n }}\n />\n </div>\n </FlagsStyle>\n }\n showOkButton={false}\n onClose={() => onCloseAlert('isPostcode')}\n />\n )}\n </>\n );\n}\n\nconst FlagsStyle = styled.div`\n .redCross {\n font-size: 13px;\n margin-top: 4px;\n }\n .postcode-alert-content {\n > div {\n > h4 {\n color: #3a3630;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n }\n }\n ul {\n margin-bottom: 0;\n }\n\n li {\n border-radius: 6px;\n list-style-type: none;\n > a {\n color: #6396e5;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px;\n text-decoration: none;\n }\n > strong {\n > a {\n color: #6396e5;\n\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px;\n text-decoration: none;\n }\n }\n }\n\n li.outstanding strong,\n li.awaiting_confirmation strong,\n li.awaiting_route strong {\n font-family: Roboto, sans-serif;\n font-size: 14px;\n font-weight: 600;\n line-height: 24px;\n font-style: normal;\n }\n li.routed strong {\n margin-left: 5px;\n color: #3a3630;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n }\n\n li.outstanding strong {\n color: #e95252;\n }\n li.awaiting_confirmation strong {\n color: #6396e5;\n }\n li.awaiting_route strong {\n color: #36a053;\n }\n li.confirmed strong {\n color: #36a053;\n }\n li.enroute strong {\n color: #36a053;\n }\n li.cancelled strong {\n color: #e95252;\n }\n li.complete strong {\n color: #36a053;\n }\n li.on_hold strong {\n color: #feba30;\n }\n li.routed strong {\n color: #3a3630;\n }\n span {\n margin-left: 5px;\n color: #3a3630;\n font-family: Lato;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 18px;\n }\n }\n`;\n\nconst StyledAlert = styled.div`\n margin-bottom: 5px;\n`;\n\nexport default OrderTemplate;\n","import React from 'react';\nimport { useCurrentAction } from '../store';\nimport {\n FlagAlert,\n formatUtcToLocal,\n} from '@bjsdistribution/dms-component-library';\nimport styled from 'styled-components';\nimport { useReminderRefId } from '../order-actions/store';\nimport { useClientPortal } from '../../store';\n\nfunction ReminderTemplate({ data, dismissReminder }: any) {\n const [, setCurrentAction] = useCurrentAction();\n const [, setReminderRefId] = useReminderRefId();\n const [isClientPortal] = useClientPortal();\n const openModal = () => {\n setCurrentAction('view-reminder');\n };\n\n //getting particular reminder data\n const handleClick = (Id: number) => {\n setReminderRefId(Id);\n openModal();\n };\n\n const type =\n data?.status === true\n ? 'success'\n : data?.status === false\n ? 'warn'\n : 'info';\n\n const titleColor =\n data?.status === true\n ? '#36A053'\n : data?.staus === false\n ? '#FEBA30'\n : '#3A3630';\n\n return (\n <div>\n <StyledAlert>\n <FlagAlert\n type={type}\n title={\n <>\n <StyledTitle color={titleColor}>\n Reminder:\n <StyledLink\n onClick={() => handleClick(data.id)}\n $disable={isClientPortal || false}\n >\n {' '}\n {data?.reference || 'NA'}{' '}\n </StyledLink>\n (Due -{' '}\n {`${formatUtcToLocal(data?.due_datetime)?.date} ${\n formatUtcToLocal(data?.due_datetime)?.time\n }`}\n )\n {data?.assigned_to && (\n <div>Assigned to: {data.assigned_to}</div>\n )}\n {data?.completed_at && (\n <div>\n Completed On:{' '}\n {`${formatUtcToLocal(data.completed_at)?.date} ${\n formatUtcToLocal(data.completed_at)?.time\n }`}\n </div>\n )}\n {data?.completed_by && <div>By: {data.completed_by}</div>}\n </StyledTitle>\n </>\n }\n description={`${data?.description}`}\n showOkButton={false}\n onClose={() => dismissReminder(data.id)}\n />\n </StyledAlert>\n </div>\n );\n}\nconst StyledAlert = styled.div`\n margin-bottom: 10px;\n`;\n\nconst StyledTitle = styled.span<{ color: string }>`\n color: ${({ color }) => color};\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n`;\n\nconst StyledLink = styled.span<{ $disable: boolean }>`\n color: var(--contextual-blue, #6396e5);\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n cursor: ${props => (props?.$disable ? 'auto' : 'pointer')};\n ${props => props?.$disable && `pointer-events: none;`};\n`;\n\nexport default ReminderTemplate;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useOrderDetails, useTabType } from '../store';\nimport OrderTemplate from './OrderTemplate';\nimport FlagTemplate from './FlagTemplate';\nimport ReminderTemplate from './ReminderTemplate';\n\nfunction Tabs({\n activeTasks,\n closedTasks,\n activeReminders,\n closedReminders,\n dismissReminder,\n dismissFlags,\n routeInfoData,\n}: any) {\n const [activeTab] = useTabType();\n const [orderDetails] = useOrderDetails();\n const initialNotifications = activeTasks?.slice(0, 3);\n const additionalNotifications = activeTasks?.slice(3);\n const initialReminders = activeReminders?.slice(0, 3);\n const additionalReminders = activeReminders?.slice(3);\n\n return (\n <>\n <Content>\n <Container className=\"tab-content\">\n {activeTab === 'active' && (\n <>\n <OrderTemplate\n orderDetails={orderDetails}\n routeInfoData={routeInfoData}\n />\n {initialReminders?.map((item: any, index: any) => (\n <ReminderTemplate\n key={index}\n data={item}\n dismissReminder={dismissReminder}\n />\n ))}\n {initialNotifications?.map((item: any, index: any) => (\n <FlagTemplate\n key={index}\n data={item}\n dismissFlags={dismissFlags}\n />\n ))}\n <>\n {additionalReminders?.map((item: any, index: any) => (\n <ReminderTemplate\n key={index + initialReminders.length}\n data={item}\n dismissReminder={dismissReminder}\n />\n ))}\n {additionalNotifications?.map((item: any, index: any) => (\n <FlagTemplate\n key={index + initialNotifications.length}\n data={item}\n dismissFlags={dismissFlags}\n />\n ))}\n </>\n </>\n )}\n {activeTab === 'closed' && (\n <>\n {closedReminders?.map((item: any, index: any) => (\n <ReminderTemplate\n key={index}\n data={item}\n dismissReminder={dismissReminder}\n />\n ))}\n {closedTasks?.map((item: any, index: any) => (\n <FlagTemplate\n key={index}\n data={item}\n dismissFlags={dismissFlags}\n />\n ))}\n </>\n )}\n </Container>\n </Content>\n </>\n );\n}\nconst Container = styled.div`\n gap: 10px;\n display: grid;\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n`;\nexport default Tabs;\n","import React from 'react';\n\nconst NotifyFlag = () => {\n return (\n <svg\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 18 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.767 13.12C9.10538 12.8759 8.50311 12.4942 8 12C7.06536 11.0839 5.80876 10.5707 4.5 10.5707C3.19124 10.5707 1.93464 11.0839 1 12M1 12V2.99999C1.93464 2.08386 3.19124 1.57071 4.5 1.57071C5.80876 1.57071 7.06536 2.08386 8 2.99999C8.93464 3.91613 10.1912 4.42928 11.5 4.42928C12.8088 4.42928 14.0654 3.91613 15 2.99999V11.5M1 12V19M11 17L13 19L17 15\"\n stroke=\"#FEBA30\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n};\n\nexport default NotifyFlag;\n","import {\n SectionHeader,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect, useState } from 'react';\nimport Tabs from './Tabs';\nimport styled from 'styled-components';\nimport {\n useInfoType,\n useOrderAlertsData,\n useOrderDetails,\n useOrderId,\n useRouteId,\n useTabType,\n} from '../store';\nimport NotifyFlag from '../../../assets/icons/NotifyFlag';\nimport {\n useTasksData,\n useOrderNotify,\n useReminderNotiData,\n useRouteDetails,\n useAllOrderStatus,\n} from '../order-actions/store';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { useClientPortal } from '../../store';\nimport { Skeleton } from 'antd';\ntype ReminderResponse = {\n data: ApiResponse[];\n stats_count: {\n pending: number;\n overdue: number;\n };\n};\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: [];\n setShouldPerformAction: boolean;\n}\n\nfunction Notification() {\n const [activeTab, setActiveTab] = useTabType();\n const [, setShowMoreInfo] = useInfoType();\n const [orderData] = useOrderDetails();\n const [taskData, setTasksData] = useTasksData();\n const [reminderNotifyData, setReminderNotifyData] = useReminderNotiData();\n const [, setRouteData] = useRouteDetails();\n const [, setCount] = useOrderNotify();\n const [activeReminders, setActiveReminders] = useState([]);\n const [closedReminders, setCloseReminders] = useState([]);\n const [activeTasks, setActiveTasks] = useState([]);\n const [closedTasks, setCloseTasks] = useState([]);\n const [idOfRoute] = useRouteId();\n const [, setStatusVal] = useAllOrderStatus();\n const [searchParams] = useSearchParams();\n const [orderAlertsData, setOrderAlertsData] = useOrderAlertsData();\n const orderIdParams = searchParams.get('order');\n const { id } = useParams();\n const [orderId, setOrderId] = useOrderId();\n const routeId = orderData?.order_routes?.route_id;\n const [isClientPortal] = useClientPortal();\n\n useEffect(() => {\n if (orderIdParams) {\n setOrderId(id);\n } else {\n const paths = location.pathname.split('/');\n setOrderId(paths[paths?.length - 1]);\n }\n }, []);\n\n //Unresolved API\n const {\n data: fetchedUnresolvedData,\n loading: unresolvedLoading,\n fetchData: callUnresolvedTaskApi,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `/v1/task/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: isClientPortal\n ? [\n { field: 'is_private', op: '=', value: 'false' },\n { field: 'order_id', op: '=', value: orderId },\n ]\n : [{ field: 'order_id', op: '=', value: orderId }],\n });\n\n //reminder get\n const {\n data: fetchedReminderData,\n loading: reminderLoading,\n fetchData: callReminderApi,\n } = useAxios<ReminderResponse>({\n endpoint: `/v1/task/reminder/get/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [{ field: 'order_id', op: '=', value: orderId }],\n });\n\n //reminder data set\n useEffect(() => {\n if (fetchedReminderData && fetchedReminderData?.data) {\n setReminderNotifyData(fetchedReminderData?.data);\n }\n }, [fetchedReminderData]);\n\n useEffect(() => {\n setStatusVal(orderData?.status_value);\n }, [orderData?.status_value]);\n\n const handleTabChange = (tab: string) => {\n setActiveTab(tab);\n //additionally set count\n setCount(1);\n setShowMoreInfo(false);\n };\n //flags data set\n useEffect(() => {\n if (fetchedUnresolvedData && fetchedUnresolvedData?.data) {\n setTasksData(fetchedUnresolvedData?.data);\n }\n }, [unresolvedLoading, fetchedUnresolvedData]);\n\n // Route API calling...\n const { data: fetchedData, fetchData: fetchRoute } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `route/${routeId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (idOfRoute !== null && idOfRoute !== undefined) {\n fetchRoute();\n }\n }, [idOfRoute]);\n\n const {\n data: alertsData,\n fetchData: callOrderAlertsApi,\n loading: alertsApiLoading,\n } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/alerts/?order_id=${orderId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (alertsData && alertsData?.data) {\n setOrderAlertsData(alertsData?.data);\n }\n }, [alertsApiLoading]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (orderId == null) return;\n\n try {\n !isClientPortal && (await callReminderApi());\n await callUnresolvedTaskApi();\n await callOrderAlertsApi();\n } catch (error) {\n console.error('Error while fetching order-related data:', error);\n }\n };\n\n fetchData();\n }, [orderId]);\n\n useEffect(() => {\n if (fetchedData && fetchedData?.data) {\n const data = fetchedData?.data[0];\n setRouteData(data);\n }\n }, []);\n\n useEffect(() => {\n if (taskData?.length > 0) {\n setActiveTasks(taskData?.filter((item: any) => item.status !== 'SD'));\n setCloseTasks(taskData?.filter((item: any) => item?.status === 'SD'));\n }\n }, [taskData, fetchedUnresolvedData]);\n\n useEffect(() => {\n if (reminderNotifyData?.length > 0) {\n setActiveReminders(\n reminderNotifyData?.filter((item: any) => item.status === false)\n );\n setCloseReminders(\n reminderNotifyData?.filter((item: any) => item?.status === true)\n );\n }\n }, [reminderNotifyData]);\n\n //dismiss notifcations\n const dismissFlags = (id: any) => {\n setActiveTasks(prevFlags => {\n const updatedFlags = prevFlags?.filter((flags: any) => flags.id !== id);\n return updatedFlags;\n });\n\n setCloseTasks(prevFlags => {\n const updatedFlags = prevFlags?.filter((flags: any) => flags.id !== id);\n return updatedFlags;\n });\n };\n\n const dismissReminder = (id: any) => {\n setActiveReminders(prevReminders =>\n prevReminders?.filter((reminder: any) => reminder.id !== id)\n );\n setCloseReminders(prevReminders =>\n prevReminders?.filter((reminder: any) => reminder.id !== id)\n );\n };\n\n const totalActiveCount =\n activeTasks?.filter((item: any) => item.status !== 'SD')?.length +\n activeReminders?.length;\n // orderCount;\n\n const totalClosedCount =\n closedTasks?.filter((item: any) => item.status === 'SD')?.length +\n closedReminders?.length;\n\n return (\n <>\n <Section>\n <Container className=\"notification-header\">\n <FlagContainer>\n <NotifyFlag />\n </FlagContainer>\n <Label label=\"NOTIFICATIONS\" />\n <TabsData className=\"tab-buttons\">\n <StyledTab\n active={activeTab === 'active'}\n onClick={() => handleTabChange('active')}\n >\n Active\n <ActiveCount>{totalActiveCount}</ActiveCount>\n </StyledTab>\n <StyledTab\n active={activeTab === 'closed'}\n onClick={() => handleTabChange('closed')}\n >\n Closed\n <ClosedCount>{totalClosedCount}</ClosedCount>\n </StyledTab>\n </TabsData>\n </Container>\n {unresolvedLoading || reminderLoading || alertsApiLoading ? (\n <>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n }}\n >\n <Skeleton.Avatar active size=\"small\" shape=\"circle\" />\n <Skeleton.Input\n active\n style={{\n width: '100%',\n height: 12,\n borderRadius: 4,\n }}\n />\n </div>\n\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n }}\n >\n <Skeleton.Avatar active size=\"small\" shape=\"circle\" />\n <Skeleton.Input\n active\n style={{\n width: '100%',\n height: 12,\n borderRadius: 4,\n }}\n />\n </div>\n\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n }}\n >\n <Skeleton.Avatar active size=\"small\" shape=\"circle\" />\n <Skeleton.Input\n active\n style={{\n width: '100%',\n height: 12,\n borderRadius: 4,\n }}\n />\n </div>\n\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n }}\n >\n <Skeleton.Avatar active size=\"small\" shape=\"circle\" />\n <Skeleton.Input\n active\n style={{\n width: '100%',\n height: 12,\n borderRadius: 4,\n }}\n />\n </div>\n </>\n ) : taskData?.length > 0 ||\n reminderNotifyData?.length > 0 ||\n orderData ? (\n <TabsWrapper>\n <Tabs\n activeTasks={activeTasks}\n closedTasks={closedTasks}\n activeReminders={activeReminders}\n closedReminders={closedReminders}\n dismissReminder={dismissReminder}\n dismissFlags={dismissFlags}\n routeInfoData={orderAlertsData}\n />\n </TabsWrapper>\n ) : (\n 'No Notifications Found'\n )}\n </Section>\n </>\n );\n}\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n gap: 20px;\n padding: 10px;\n border-bottom: 1px solid #ccc;\n`;\n\nconst FlagContainer = styled.div`\n padding: 8px;\n background-color: #3a3630;\n border-radius: 10px;\n`;\n\nconst TabsData = styled.div`\n display: flex;\n align-items: center;\n gap: 20px;\n padding: 10px;\n`;\n\nconst ActiveCount = styled.div`\n color: #ffffff;\n padding: 1px 5px;\n background-color: #6396e5;\n border-radius: 6px;\n`;\n\nconst ClosedCount = styled.div`\n color: #ffffff;\n padding: 1px 5px;\n background-color: #e95252;\n border-radius: 6px;\n`;\n\nconst StyledTab = styled.div<{ active: boolean }>`\n display: flex;\n gap: 5px;\n cursor: pointer;\n color: ${props => (props.active ? '#3a3630' : '#AEA9A1')};\n border-bottom: ${props =>\n props.active ? '2px solid #feba30' : '2px solid #eeeeee'};\n transition: border-bottom 0.3s ease;\n font-family: 'Roboto', sans-serif;\n padding-bottom: 5px;\n align-items: center;\n`;\n\nconst Section = styled.div`\n display: flex;\n flex-direction: column;\n gap: 14px;\n background: #ffffff;\n border-radius: 12px;\n padding: 10px;\n box-shadow: 0px 4px 30px 0px rgba(46, 45, 116, 0.05);\n border: 1px solid #e0e0e0;\n`;\n\nconst Label = styled(SectionHeader)`\n border-bottom: 1px solid #ccc;\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px; /* 150% */\n text-transform: uppercase;\n`;\n\nconst TabsWrapper = styled.div`\n /* min-height: 200px; */\n max-height: 350px;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &:hover {\n scrollbar-width: thin;\n }\n\n &::-webkit-scrollbar {\n width: 0;\n }\n\n &:hover::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: rgba(0, 0, 0, 0.5);\n }\n`;\n\nexport default Notification;\n","import React from 'react';\nimport styled from 'styled-components';\n\nfunction CollapsedContent() {\n return <Font>ORDER RESOURCES</Font>;\n}\nconst Font = styled.div`\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px; /* 150% */\n`;\nexport default CollapsedContent;\n","import React from 'react';\nimport styled from 'styled-components';\n\nfunction Category(props: any) {\n const data = props?.row?.original.category;\n return (\n <RowContainer>\n <Row>{data}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Category;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { formatDate } from '../../order-actions/utils';\n\nfunction Date(props: any) {\n const data = props?.row?.original.date;\n return (\n <RowContainer>\n <Row>{formatDate(data)}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Date;\n","import React from 'react';\nimport styled from 'styled-components';\n\nfunction Reference(props: any) {\n const data = props?.row?.original.reference;\n return (\n <RowContainer>\n <Row>{data}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Reference;\n","import React from 'react';\nimport styled from 'styled-components';\n\nfunction Type(props: any) {\n const data = props?.row?.original.type;\n return (\n <RowContainer>\n <Row>{data}</Row>\n </RowContainer>\n );\n}\n\nconst RowContainer = styled.div``;\n\nconst Row = styled.div``;\n\nexport default Type;\n","import React from 'react';\n\nexport const DownloadIcon = () => {\n return (\n <svg\n width=\"21\"\n height=\"21\"\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"icon/import\">\n <rect\n width=\"20\"\n height=\"20\"\n transform=\"translate(0.5 0.243164)\"\n fill=\"white\"\n />\n <path\n id=\"Vector\"\n opacity=\"0.6\"\n d=\"M5.12684 17.7165C4.83921 17.7084 4.55614 17.6426 4.29443 17.523C4.03273 17.4034 3.79774 17.2324 3.60341 17.0202C3.40908 16.808 3.25938 16.5589 3.16319 16.2877C3.06701 16.0165 3.02631 15.7287 3.04351 15.4415C3.03351 13.6473 3.04351 11.8532 3.04351 10.059C3.04351 9.94849 3.08741 9.84251 3.16555 9.76437C3.24369 9.68623 3.34967 9.64233 3.46017 9.64233C3.57068 9.64233 3.67666 9.68623 3.7548 9.76437C3.83294 9.84251 3.87684 9.94849 3.87684 10.059C3.87684 11.8923 3.85017 13.7257 3.87684 15.559C3.89017 16.4815 4.58351 16.8832 5.40851 16.8832H15.7943C16.0566 16.8896 16.3146 16.8158 16.5338 16.6717C16.753 16.5275 16.923 16.3199 17.021 16.0765C17.1009 15.789 17.1291 15.4897 17.1043 15.1923V10.059C17.1043 9.94849 17.1482 9.84251 17.2264 9.76437C17.3045 9.68623 17.4105 9.64233 17.521 9.64233C17.6315 9.64233 17.7375 9.68623 17.8156 9.76437C17.8938 9.84251 17.9377 9.94849 17.9377 10.059C17.9377 11.9123 18.0085 13.7798 17.9377 15.6315C17.9305 15.9151 17.867 16.1944 17.7509 16.4532C17.6348 16.7119 17.4683 16.9451 17.2613 17.1389C17.0542 17.3328 16.8107 17.4836 16.5448 17.5824C16.279 17.6813 15.9961 17.7263 15.7127 17.7148L5.12684 17.7165Z\"\n fill=\"#3A3630\"\n />\n <path\n id=\"Vector_2\"\n opacity=\"0.6\"\n d=\"M10.1916 13.4248C10.2602 13.4951 10.3533 13.5363 10.4516 13.5398C10.4632 13.5398 10.4741 13.5439 10.4866 13.5448C10.4991 13.5456 10.5091 13.5448 10.5207 13.5398C10.619 13.5364 10.7121 13.4952 10.7807 13.4248L13.8382 10.3673C13.9141 10.2887 13.9561 10.1834 13.9552 10.0742C13.9542 9.96495 13.9104 9.86044 13.8331 9.78319C13.7559 9.70594 13.6514 9.66212 13.5421 9.66117C13.4329 9.66022 13.3276 9.70222 13.2491 9.77812L10.9032 12.1239V3.17228C10.9032 3.06178 10.8593 2.95579 10.7812 2.87765C10.703 2.79951 10.5971 2.75562 10.4866 2.75562C10.376 2.75562 10.2701 2.79951 10.1919 2.87765C10.1138 2.95579 10.0699 3.06178 10.0699 3.17228V12.1239L7.72322 9.77812C7.64464 9.70222 7.53938 9.66022 7.43014 9.66117C7.32089 9.66212 7.21638 9.70594 7.13913 9.78319C7.06188 9.86044 7.01805 9.96495 7.01711 10.0742C7.01616 10.1834 7.05815 10.2887 7.13405 10.3673L10.1916 13.4248Z\"\n fill=\"#3A3630\"\n />\n </g>\n </svg>\n );\n};\n\nexport default DownloadIcon;\n","import { ViewIcon } from '@bjsdistribution/dms-component-library';\nimport Tippy from '@tippyjs/react';\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { atom } from 'jotai';\nimport { useOrderProductsResources } from '../../../store';\nimport { notification } from 'antd';\nimport DownloadIcon from '../../../../../assets/icons/DownloadIcon';\n\nexport const selectedOrderIdAtom = atom<number[]>([]);\n\ninterface ActionProps {\n row: {\n original: {\n id: number;\n };\n };\n}\n\nfunction Action({ row }: ActionProps) {\n const [orderResources] = useOrderProductsResources();\n const [isDownloading, setIsDownloading] = useState(false);\n const urlID = row?.original?.id;\n\n const matchingResource = orderResources?.data?.find(\n (resource: any) => resource.id === urlID\n );\n\n const resourceUrl = matchingResource?.url;\n\n const handleView = () => {\n if (resourceUrl) {\n window.open(resourceUrl, '_blank');\n }\n };\n\n const handleDownload = async () => {\n if (!resourceUrl) {\n notification.error({\n message: 'Error',\n description: 'Resource URL is not available',\n });\n return;\n }\n\n setIsDownloading(true); // disable button\n notification.info({\n message: 'Info',\n description: `Download is in progress. Please wait`,\n });\n //to change\n fetch(resourceUrl, {\n method: 'GET',\n headers: {},\n })\n .then(response => {\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n return response.blob();\n })\n .then(blob => {\n // Create a temporary URL for the blob\n const urlObject = window.URL.createObjectURL(blob);\n\n // Create a temporary anchor element\n const link = document.createElement('a');\n link.href = urlObject;\n\n // Generate a filename (you can customize this)\n const filename = `Downloads`;\n link.download = filename;\n\n // Append to body, click, and remove\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Revoke the blob URL\n window.URL.revokeObjectURL(urlObject);\n\n notification.success({\n message: 'Success',\n description: 'Document downloaded successfully.',\n });\n\n setIsDownloading(false); // enable button\n })\n .catch(error => {\n console.error('Error downloading the document:', error);\n notification.error({\n message: 'Error',\n description: 'Failed to download the document.',\n });\n })\n .finally(() => {\n setIsDownloading(false);\n });\n };\n\n return (\n <Actions>\n <Row>\n <Tippy content=\"View\" placement=\"top\" trigger=\"mouseenter\">\n <TippyContainer onClick={handleView}>\n <ViewIcon style={{ cursor: 'pointer' }} />\n </TippyContainer>\n </Tippy>\n <Tippy content=\"Download\" placement=\"top\" trigger=\"mouseenter\">\n <TippyContainer\n onClick={isDownloading ? undefined : handleDownload}\n style={{\n cursor: isDownloading ? 'not-allowed' : 'pointer',\n opacity: isDownloading ? 0.6 : 1,\n }}\n >\n <DownloadIcon />\n </TippyContainer>\n </Tippy>\n </Row>\n </Actions>\n );\n}\n\n// Styled components for styling\nconst Actions = styled.div``;\n\nconst TippyContainer = styled.div`\n display: inline-block;\n margin: 7px;\n`;\n\nconst Row = styled.div`\n gap: 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n`;\n\nexport default Action;\n","import { Actions, Category, Date, Reference, Type } from './columns';\n\nexport const tableColumns = [\n {\n header: 'Date',\n accessorKey: 'date',\n cell: Date,\n enableSorting: false,\n },\n {\n header: 'Type',\n accessorKey: 'type',\n cell: Type,\n enableSorting: false,\n },\n {\n header: 'Category',\n accessorKey: 'category',\n cell: Category,\n enableSorting: false,\n },\n {\n header: 'Reference',\n accessorKey: 'reference',\n cell: Reference,\n enableSorting: false,\n },\n {\n header: 'Actions',\n accessorKey: 'action',\n cell: Actions,\n enableSorting: false,\n },\n];\n","import React from 'react';\nimport CollapsedContent from '../collapsed-content';\nimport styled from 'styled-components';\nimport CollapsableForm from '../../../../common/expand-collapse';\nimport DynamicTable from '../../DynamicTable';\nimport { useOrderProductsResources } from '../../store';\nimport { tableColumns } from '../helper';\n\nfunction Order({ loading }: any) {\n const [orderResources] = useOrderProductsResources();\n\n const data =\n orderResources?.data && orderResources?.data?.length > 0\n ? orderResources?.data\n : '';\n\n return (\n <Table>\n <CollapsableForm collapsedContent={<CollapsedContent />}>\n <DynamicTable columns={tableColumns} data={data} loading={loading} />\n </CollapsableForm>\n </Table>\n );\n}\nconst Table = styled.div`\n width: 100%;\n`;\nexport default Order;\n","import React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport OrderDetails from './order-details';\nimport Notes from './notes';\nimport SystemLogs from './system-event-logs/expanded-content';\nimport GeneralHeader from './general-information';\nimport ProductsInfo from './products-info';\nimport OrderActions from './order-actions';\nimport {\n DocumentTitle,\n useApiHook,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport {\n useOrderDetails,\n // useOrderStaticData,\n useStatusDetails,\n useOrderId,\n useDepotOptions,\n usePrevOrderDetails,\n useOrderProductsResources,\n useCustomerInfo,\n useLocationOptions,\n useOrderProductSystemLogs,\n useGsitCUstomerId,\n useCUstomerId,\n useRouteId,\n useGsitOrderId,\n useOrderProductId,\n useLiveRecalling,\n useGlobalStateHitOrder,\n useAtom,\n usegetClientData,\n useGlobalEscData,\n} from './store';\nimport { OrdersType } from './types';\nimport { useLocation } from 'react-router-dom';\nimport { message, notification } from 'antd';\nimport DetailsFilters from './details-filters/DetailsFilters';\nimport { useIsShowNorthSouth, useSubContracterData } from '../store';\nimport Notification from './notification';\nimport Order from './order-resources/expanded-content';\nimport { setResourcesCall, useAllOrderStatus } from './order-actions/store';\nimport { ClientType } from '../order-daily-overview/common/interface';\nimport { POSTCODE_LABEL } from '../../common/utils';\nimport { getEnvironment } from './utils';\n\ninterface ApiResponse {\n message: string;\n code: number;\n error: string | null;\n error_traceback: string | null;\n data: [];\n setShouldPerformAction: boolean;\n}\n\nfunction OrderView({ locationloading }: any) {\n notification.config({\n top: 150,\n });\n const [orderId, setOrderId] = useOrderId();\n const [gsitOrderId, setGsitOrderId] = useGsitOrderId();\n // For API Call\n const [orderDetails, setOrderDetails] = useOrderDetails();\n const [, setPrevOrderDetails] = usePrevOrderDetails();\n const [, setLoading] = useState<boolean>(false);\n const [, setOrderStatus] = useStatusDetails();\n const [, setDepotOptions] = useDepotOptions();\n const [customerInfo, setCustomerInfo] = useCustomerInfo();\n const [, setLocationOptions] = useLocationOptions();\n const [orderResources, setOrderResources] = useOrderProductsResources();\n const [GsitCUstomerId, setGsitCUstomerId] = useGsitCUstomerId();\n const [, setOrderProductId] = useOrderProductId();\n const [, setCUstomerId] = useCUstomerId();\n const [, setRouteId] = useRouteId();\n const [liveRecalling] = useLiveRecalling();\n const [, setSubContracterData] = useSubContracterData();\n const [recallOrders] = useGlobalStateHitOrder();\n const [, setStatusVal] = useAllOrderStatus();\n const order_id = orderDetails?.id;\n const [getResources] = useAtom(setResourcesCall);\n const [, setClientData] = usegetClientData();\n const [, setGlobalEscData] = useGlobalEscData();\n const [, setIsNorthSouth] = useIsShowNorthSouth();\n\n useEffect(() => {\n setStatusVal(orderDetails?.status_value);\n }, [orderDetails?.status_value]);\n\n //get system event logs\n const {\n data: fetchedSystemLogsData,\n fetchData: callSystemLogsAPI,\n loading: logsLoading,\n } = useAxios<{\n data: any[];\n }>({\n endpoint: `/events/get/event/`,\n method: 'GET',\n pagination: { page: 1, per_page: 100 },\n filters: [\n {\n field: 'order_id',\n op: '=',\n value: `${order_id}`,\n },\n ],\n showLoader: false,\n });\n\n // query param\n const location = useLocation();\n const [filters, setFilters] = useState<\n Array<{ field: string; op: string; value: string | null }>\n >([]);\n\n // for third party apps\n const {\n data: fetchedDataExternal,\n loading: loadingExternal,\n setShouldPerformAction: setShouldPerformExternal,\n } = useApiHook<{\n data: any[];\n }>({\n endpoint: `orders/`,\n method: 'GET',\n filters: filters,\n performAction: false,\n });\n\n useEffect(() => {\n const searchParams = new URLSearchParams(location.search);\n if (searchParams?.toString()) {\n const dynamicFilters: Array<{\n field: string;\n op: string;\n value: string | null;\n }> = [];\n searchParams?.forEach((value, key) => {\n if (key === 'order') {\n dynamicFilters.push({\n field: 'gsit_order_id',\n op: '=',\n value: value,\n });\n } else {\n dynamicFilters.push({\n field: key,\n op: '=',\n value: value,\n });\n }\n });\n setFilters(dynamicFilters);\n if (filters) {\n setShouldPerformExternal(true);\n setOrderId(fetchedDataExternal?.data[0]?.id);\n }\n } else {\n const paths = location.pathname.split('/');\n setOrderId(paths[paths?.length - 1]);\n }\n }, [location.search, loadingExternal]);\n\n const {\n data: fetchedData,\n loading,\n setShouldPerformAction: orderUpdate,\n } = useApiHook<{\n data: OrdersType[];\n }>({\n endpoint: `orders/${orderId}`,\n method: 'GET',\n performAction: false,\n });\n\n //Order status api\n const {\n data: fetchedStatusData,\n loading: statusDataLoading,\n setShouldPerformAction: setLivePerformAction,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/get_live_status/${orderId}`,\n method: 'GET',\n performAction: false,\n });\n const { data: fetchedDepotData, loading: depotDataLoading } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/depot/`,\n method: 'GET',\n filters: [{ field: 'visibility', op: '=', value: true }],\n //@ts-ignore\n pagination: { is_pagination: false },\n });\n useEffect(() => {\n if (orderId) {\n orderUpdate(recallOrders);\n liveRecalling ? setLivePerformAction(false) : setLivePerformAction(true);\n }\n }, [orderId, liveRecalling, recallOrders]);\n\n useEffect(() => {\n setLoading(loading);\n if (fetchedData && fetchedData.data) {\n const requiredData = fetchedData?.data;\n setOrderDetails(requiredData[0]);\n //@ts-ignore\n setCUstomerId(requiredData[0]?.customer_id);\n setRouteId(requiredData[0]?.order_routes?.route_id);\n //@ts-ignore\n setGsitOrderId(requiredData[0]?.gsit_order_id);\n //@ts-ignore\n setOrderProductId(requiredData[0]?.id);\n setCustomerInfo({\n recipient_name:\n requiredData[0]?.order_recipient?.recipient_name ?? null,\n postcode: requiredData[0]?.order_recipient?.postcode ?? null,\n return_action: requiredData[0]?.return_action ?? null,\n });\n\n setPrevOrderDetails(requiredData[0]);\n\n //dbSync Api call\n if (fetchedData?.data[0]?.gsit_order_id) {\n localStorage.setItem(\n 'dbSyncAPICall',\n JSON.stringify({\n status: true,\n gsit_orderId: fetchedData?.data[0]?.gsit_order_id,\n })\n );\n } else {\n localStorage.setItem('dbSyncAPICall', JSON.stringify({}));\n }\n }\n return () => {\n localStorage.removeItem('dbSyncAPICall');\n };\n }, [loading]);\n\n useEffect(() => {\n setLoading(statusDataLoading);\n if (fetchedStatusData && fetchedStatusData.data) {\n const requiredData = fetchedStatusData?.data;\n if (requiredData) {\n setOrderStatus(requiredData);\n } else {\n // setOrderStatus(null);\n }\n }\n }, [statusDataLoading, fetchedStatusData]);\n\n const {\n fetchData: callCLientApi,\n loading: clientLoading,\n data: clientData,\n } = useAxios<{\n data: ClientType[];\n }>({\n endpoint: `/v1/client/list`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (orderId) {\n callCLientApi();\n callEscalationApi();\n }\n }, [orderId]);\n\n useEffect(() => {\n if (clientData && clientData?.data) {\n const res = clientData?.data;\n setClientData(res);\n }\n }, [clientLoading]);\n\n useEffect(() => {\n setLoading(depotDataLoading);\n if (fetchedDepotData && fetchedDepotData.data) {\n const requiredData = fetchedDepotData?.data;\n if (requiredData.length > 0) {\n const options = requiredData?.map((x: any) => {\n return {\n label: x.name,\n value: x.id,\n };\n });\n setDepotOptions(options);\n } else {\n setDepotOptions([]);\n }\n }\n }, [depotDataLoading]);\n\n // Order resources\n const {\n data: fetchedResourcesData,\n setShouldPerformAction: setActions,\n loading: loadingResources,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/orders/${orderId}/order_resources/`,\n method: 'GET',\n performAction: false,\n showLoader: false,\n });\n\n useEffect(() => {\n if (orderId) {\n if (getResources) {\n setActions(false);\n setTimeout(() => {\n setActions(true);\n }, 200);\n } else {\n setActions(true);\n }\n }\n }, [orderId, setActions, getResources]);\n\n useEffect(() => {\n if (orderId) {\n setActions(true);\n }\n }, [orderId, setActions]);\n\n useEffect(() => {\n if (orderId) {\n setOrderResources(fetchedResourcesData);\n }\n }, [fetchedResourcesData, orderResources, setOrderResources]);\n\n // // Toolbox resources\n // const {\n // data: fetchedToolboxData,\n // setShouldPerformAction: setAction,\n // } = useApiHook<{\n // data: ApiResponse[];\n // }>({\n // endpoint: `/orders/${orderId}/toolbox_resources/`,\n // method: 'GET',\n // performAction: false,\n // });\n\n // useEffect(() => {\n // if (orderId) {\n // setAction(true);\n // }\n // }, [orderId, setAction]);\n\n // useEffect(() => {\n // if (orderId) {\n // setOrderToolbox(fetchedToolboxData);\n // }\n // }, [fetchedToolboxData, orderToolbox, setOrderToolbox]);\n\n useEffect(() => {\n return () => {\n setGsitCUstomerId((prev: any) => ({ ...prev, id: undefined }));\n };\n }, []);\n\n const {\n data: fetchedLocationData,\n loading: dataLoading,\n setShouldPerformAction: shouldFetch,\n } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/return_locations/?customer_id=${GsitCUstomerId?.id}`,\n method: 'GET',\n performAction: false,\n });\n\n useEffect(() => {\n if (GsitCUstomerId?.id) {\n shouldFetch(true);\n } else {\n shouldFetch(false);\n }\n }, [GsitCUstomerId]);\n\n useEffect(() => {\n if (fetchedLocationData && fetchedLocationData?.data) {\n const locationOptions = fetchedLocationData?.data?.map((item: any) => {\n return {\n label: item?.location_name + ', ' + item?.postcode,\n value: item?.token,\n is_default: item?.is_default === 'True' ? true : false,\n };\n });\n setLocationOptions(locationOptions);\n }\n }, [dataLoading]);\n const [, setSystemLogsEvents] = useOrderProductSystemLogs();\n\n useEffect(() => {\n if (fetchedSystemLogsData && fetchedSystemLogsData?.data) {\n setSystemLogsEvents(fetchedSystemLogsData?.data);\n }\n }, [logsLoading]);\n\n useEffect(() => {\n if (gsitOrderId) {\n callSystemLogsAPI();\n }\n return () => {\n setGsitOrderId(undefined);\n };\n }, [order_id]);\n\n const { data: fetchedSubcontractotData, loading: apiLoading } = useApiHook<{\n data: ApiResponse[];\n }>({\n endpoint: `/sub-contractor/sub_contractor/get/`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (fetchedSubcontractotData && fetchedSubcontractotData?.data) {\n const formattedData = fetchedSubcontractotData?.data?.map(\n (item: any) => ({\n id: item.id,\n name: item.name,\n })\n );\n setSubContracterData(formattedData);\n }\n }, [fetchedSubcontractotData, fetchedSubcontractotData, apiLoading]);\n\n // ESCALATIONS API\n\n const {\n data: fetchedEscalationData,\n fetchData: callEscalationApi,\n loading: escalationDataLoading,\n } = useAxios<{\n data: any;\n }>({\n endpoint: `/orders/escalations/${orderId}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (fetchedEscalationData?.data) {\n const escalationData = fetchedEscalationData?.data;\n const sortedEscData = escalationData?.sort(\n (a: any, b: any) =>\n new Date(b?.created_at).getTime() - new Date(a?.created_at).getTime()\n );\n const showEsc = sortedEscData != null && sortedEscData.length > 0;\n showEsc ? setGlobalEscData(sortedEscData) : setGlobalEscData([]);\n }\n }, [escalationDataLoading]);\n\n const docTitle = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;\n const environment = getEnvironment();\n const { fetchData: callCheckPostcode } = useAxios<{\n data: ApiResponse[];\n }>({\n endpoint: `v1/orders/customs/postcode/check/`,\n method: 'GET',\n });\n\n //northern southern\n const callCheckPostcodeAPI = async () => {\n try {\n const response = await callCheckPostcode({\n endPointQuery: `?postcode=${orderDetails?.order_recipient?.postcode}`,\n });\n //@ts-ignore\n if (response?.code === 200) {\n //@ts-ignore\n const isNorthSouth = response?.data?.order_customs_postcodes;\n setIsNorthSouth(isNorthSouth);\n } else {\n message.open({\n type: 'error',\n //@ts-ignore\n content: response?.error || 'Something went wrong',\n });\n }\n } catch (err) {\n message.open({\n type: 'error',\n content: `Failed to check ${POSTCODE_LABEL.toLowerCase()}. Please try again.`,\n });\n }\n };\n const POSTCODE_REGEX = {\n UK: /\\b(?:[A-Za-z][A-HJ-Ya-hj-y]?[0-9][0-9A-Za-z]? ?[0-9][A-Za-z]{2}|[Gg][Ii][Rr] ?0[Aa]{2})\\b/,\n IRISH: /^(?:^[AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$/,\n US: /^\\d{5}(-\\d{4})?$/,\n };\n const isDevelopmentOrStagingOrReleaseUK =\n environment === 'development' ||\n environment === 'staging' ||\n environment === 'release_uk';\n const isValidPostcode = (val: any) => {\n if (isDevelopmentOrStagingOrReleaseUK) {\n return POSTCODE_REGEX.UK.test(val) || POSTCODE_REGEX.IRISH.test(val);\n } else {\n return POSTCODE_REGEX.US.test(val);\n }\n };\n const hasCalledInitialAPI = useRef(false);\n\n useEffect(() => {\n const currentPostcode = orderDetails?.order_recipient?.postcode?.trim();\n\n if (\n currentPostcode &&\n isValidPostcode(currentPostcode) &&\n !hasCalledInitialAPI.current\n ) {\n hasCalledInitialAPI.current = true;\n callCheckPostcodeAPI();\n }\n }, [orderDetails?.order_recipient?.postcode]);\n return (\n <MainContainer>\n <DocumentTitle title={docTitle} />\n <GeneralHeader statusDataLoading={statusDataLoading} />\n\n <DetailsFilters />\n <Notification />\n <OrderDetails\n orderLoading={loading}\n depotDataLoading={depotDataLoading}\n />\n <ProductsInfo locationloading={locationloading} />\n <SplitLayout>\n <NotesContainer>\n <Notes />\n </NotesContainer>\n <TablesContainer>\n <Order loading={loadingResources} />\n <SystemLogs loading={logsLoading} />\n </TablesContainer>\n </SplitLayout>\n <OrderActions />\n </MainContainer>\n );\n}\n\nconst MainContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding-bottom: 30px;\n`;\n\nconst SplitLayout = styled.div`\n display: flex;\n gap: 15px;\n @media (max-width: 1024px) {\n display: contents;\n }\n`;\n\nconst NotesContainer = styled.div`\n flex: 1;\n`;\n\nconst TablesContainer = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 15px;\n`;\n\nexport default OrderView;\n","\nimport styled from 'styled-components';\n\nexport const StyledBulkFilterCover = styled.div`\n border-radius: 100px;\n border: 1px solid rgba(208, 213, 221, 0.5);\n background: #fff;\n display: flex;\n min-height: 40px;\n gap: 8px;\n`;\n\nexport const StyledBulkItem = styled.div`\n padding: 8px 12px;\n display: flex;\n align-items: center;\n /* border-right: 1px solid #d0d5dd; */\n gap: 8px;\n cursor: pointer;\n position: relative;\n\n @media screen and (max-width: 1030px) {\n padding: 8px 11px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n list-style: none;\n box-sizing: border-box;\n top: 54px;\n }\n &:last-child {\n border-right: none;\n }\n &.active svg.arrowDown {\n transform: rotate(180deg);\n }\n label {\n color: #6a7378;\n text-align: center;\n font-family: 'Open Sans';\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n cursor: pointer;\n }\n\n &.noPadding {\n padding: 0;\n }\n`;\n","import { atom, useAtom } from 'jotai';\n\nconst date = atom(new Date());\nexport const usedate = () => {\n return useAtom(date);\n};\n\ninterface Filter {\n field: string;\n op: string;\n value: any;\n join?: any;\n}\n\ninterface Pagination {\n page: number;\n per_page: number;\n}\n\ninterface FilterState {\n 'x-filters': Filter[];\n 'x-pagination': Pagination;\n}\nconst initialState: FilterState = {\n 'x-filters': [],\n 'x-pagination': { page: 1, per_page: 50 },\n};\n\nconst filterReducer = (state: FilterState, action: any): FilterState => {\n switch (action.type) {\n // case 'SET_COMP_RETURN_FILTERS':\n // return {\n // ...state,\n // 'x-filters': [\n // ...state['x-filters'].filter(\n // f => f.field !== 'customer_name' && f.field !== 'trading_as'\n // ),\n // {\n // field: 'customer_name',\n // op: 'like',\n // value: `%${action.payload}%`,\n // join: 'or',\n // },\n // {\n // field: 'trading_as',\n // op: 'like',\n // value: `%${action.payload}%`,\n // join: 'or',\n // },\n // ],\n // 'x-pagination': { ...state['x-pagination'], page: 1 },\n // };\n\n case 'CLEAR_SEARCH':\n return {\n ...state,\n 'x-filters': [...initialState['x-filters']],\n 'x-pagination': { ...initialState['x-pagination'], page: 1 },\n };\n\n case 'CLEAR_ALL_FILTER':\n return {\n ...state,\n };\n\n case 'SET_PAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n page: action.payload,\n },\n };\n\n case 'SET_PERPAGE':\n return {\n ...state,\n 'x-pagination': {\n ...state['x-pagination'],\n per_page: action.payload,\n },\n };\n case 'CLEAR_FILTERS':\n return {\n ...state,\n };\n\n case 'CLEAR_ALL_FILTER':\n return {\n ...state,\n };\n default:\n return state;\n }\n};\n\nconst filtersStateAtom = atom(initialState);\n\nexport const overviewfiltersReducerAtom = atom(\n get => get(filtersStateAtom),\n (get, set, action) =>\n set(filtersStateAtom, filterReducer(get(filtersStateAtom), action))\n);\n","import React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { SearchIcon } from '../../../../../assets/icons';\nimport { CrossIcon, useAxios } from '@bjsdistribution/dms-component-library';\nimport {\n useAtom,\n useClientData,\n useInternalSearchText,\n} from '../../../../order-view/store';\nimport { ClientData } from '../../../common/interface';\nimport { notification } from 'antd';\nimport { overviewfiltersReducerAtom } from '../../../header-filters/overViewFilter';\nimport { UsePaginationOverviewData } from '../../../store/store';\nimport { useStatsLoading } from '../../../store/store';\n\nconst SearchType = () => {\n const [searchText, setSearchText] = useState('');\n const [, setClientData] = useClientData();\n const [debouncedSearchText, setDebouncedSearchText] = useInternalSearchText();\n const [state] = useAtom(overviewfiltersReducerAtom);\n const [, setPaginationObject] = UsePaginationOverviewData();\n const [, setStatsLoading] = useStatsLoading();\n const didMountRef = useRef(false);\n const { 'x-filters': filters, 'x-pagination': pagination } = state;\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedSearchText(searchText);\n }, 1000);\n\n return () => clearTimeout(handler);\n }, [searchText]);\n\n const { fetchData: fetchSearchedData, data: searchData, loading } = useAxios<{\n data: any[];\n }>({\n endpoint: `/v1/return/search/?search_phrase=${debouncedSearchText}`,\n method: 'GET',\n });\n\n useEffect(() => {\n if (!didMountRef.current) {\n didMountRef.current = true;\n return;\n }\n\n if (debouncedSearchText?.length > 0) {\n fetchSearchedData();\n } else {\n // setOrderData([]);\n fetchAllData();\n }\n }, [debouncedSearchText]);\n\n useEffect(() => {\n if (searchData && Array.isArray(searchData?.data)) {\n setClientData(searchData?.data);\n }\n }, [searchData]);\n\n const handleClear = () => {\n setSearchText('');\n setDebouncedSearchText('');\n };\n\n const {\n data: fetchedClientData,\n loading: statsDataLoading,\n paginationData,\n fetchData: fetchAllData,\n } = useAxios<{\n data: ClientData[];\n }>({\n endpoint: `/v1/return/product/stats/`,\n method: 'GET',\n //@ts-ignore\n pagination: pagination,\n filters: filters,\n });\n\n useEffect(() => {\n if (debouncedSearchText && debouncedSearchText?.length > 0) {\n setStatsLoading(loading);\n } else {\n setStatsLoading(statsDataLoading);\n }\n }, [loading, statsDataLoading, debouncedSearchText]);\n\n useEffect(() => {\n if (fetchedClientData && fetchedClientData.data) {\n const result = fetchedClientData?.data;\n setClientData(result);\n if (paginationData) {\n try {\n const { count, ...rest } = JSON.parse(paginationData);\n setPaginationObject(rest);\n } catch (error) {\n console.error('Error parsing paginationData:', error);\n notification.error({\n message: 'Error',\n description: 'Failed to parse pagination data',\n });\n }\n }\n }\n }, [statsDataLoading]);\n\n return (\n <Search>\n <SearchIcon />\n <SearchInput\n type=\"text\"\n placeholder=\"Search\"\n value={searchText}\n onChange={(e: any) => setSearchText(e.target.value)}\n />\n {searchText && (\n <ClearButton className=\"clear\" onClick={handleClear}>\n <CrossIcon />\n </ClearButton>\n )}\n </Search>\n );\n};\n\nconst Search = styled.div`\n position: relative;\n svg {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n }\n .clear {\n position: absolute;\n right: 32px;\n top: 50%;\n transform: translateY(-50%);\n }\n`;\n\nconst ClearButton = styled.button`\n border: none;\n color: rgba(0, 0, 0, 0.25);\n cursor: pointer;\n padding: 0 8px;\n font-size: 14px;\n background: transparent;\n &:hover {\n color: #000;\n }\n`;\n\nconst SearchInput = styled.input`\n border-radius: 20px;\n border: 1px solid #e0e2e7;\n background: #fff;\n box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.05);\n display: flex;\n padding: 8.5px 12px;\n padding-left: 39px;\n width: 100%;\n &:focus {\n outline: none;\n border-color: gray;\n }\n`;\n\nexport default SearchType;\n","import React, { useEffect, useRef } from 'react';\nimport { StyledBulkItem } from './BulkFilterStyle';\n// import { TableData } from '../common/fakedata';\n// import TableFilter from '../header/table-filter/TableFilter';\nimport SearchType from '../header/route-header/search/SearchType';\n\n\nconst BulkFilter = () => {\n // const [printToogle, setPrintToggle] = useMenuDropDown();\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n // const showMenu = () => {\n // setPrintToggle(prev => !prev);\n // };\n\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n // setPrintToggle(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n return (\n // <StyledBulkFilterCover>\n\n <StyledBulkItem>\n <SearchType />\n </StyledBulkItem>\n /* {showTableFilter && ( \n <StyledBulkItem>\n <TableFilter tableData={TableData[0].tableHead} />\n </StyledBulkItem>\n )} */\n // </StyledBulkFilterCover>\n );\n};\n\nexport default BulkFilter;\n\n\n\n","import React from 'react';\nimport {\n StyledFIlterELements,\n StyledFiter,\n StyledTableFilter,\n} from './FilterStyle';\nimport BulkFilter from './BulkFilter';\n\nconst Filters = () => {\n return (\n <>\n <StyledFiter>\n <StyledFIlterELements>\n <StyledTableFilter />\n </StyledFIlterELements>\n <BulkFilter />\n </StyledFiter>\n </>\n );\n};\n\nexport default Filters;\n","import React, { useMemo, useState } from 'react';\nimport { useAtom, useClientData, useInternalSearchText } from '../../order-view/store';\nimport { useStatsLoading } from '../store/store';\nimport {\n ColumStyle,\n EmptyDataContainer,\n GreyBox,\n StyledTable,\n StyledTableWrapper,\n} from './table-data/styles';\nimport { Empty, Skeleton } from 'antd';\nimport { useNavigate } from 'react-router-dom';\nimport { filtersReducerAtom } from '../header-filters/filterStore';\nimport { useCustomerData } from '../../store';\nimport SortIcon from '../../../common/SortIcon';\nimport CaretDownFilledIcon from '../../../common/CaretDownFilledIcon';\n\nconst ReturnTable: React.FC = () => {\n const [clientData] = useClientData();\n const [statsLoading] = useStatsLoading();\n const [, dispatch] = useAtom(filtersReducerAtom);\n const navigate = useNavigate();\n const [customers] = useCustomerData();\n const [debouncedSearchText] = useInternalSearchText();\n // const [searchParams] = useSearchParams();\n\n //sorting\n const [sortConfig, setSortConfig] = useState<{\n key: string;\n direction: 'asc' | 'desc';\n } | null>(null);\n\n const handleSort = (key: string) => {\n setSortConfig(prev => {\n if (prev?.key === key && prev.direction === 'asc') {\n return { key, direction: 'desc' };\n }\n return { key, direction: 'asc' };\n });\n };\n\n //updated client data\n const updatedData = useMemo(() => {\n\n let baseCustomers = (debouncedSearchText && debouncedSearchText?.length > 0)\n ? (clientData || [])\n : (customers || []);\n\n const mappedCustomers = baseCustomers?.map((customer: any) => {\n // Normal state: Merge aggregate stats from the stats API onto the generic customers list\n const matchingClientStats = clientData?.find((client: any) =>\n client?.customer_id != null && client?.customer_id.toString() === customer?.customer_id?.toString()\n );\n\n let processedChildren = customer?.children?.map((child: any) => {\n const matchingChildStats = clientData?.find((client: any) =>\n client?.customer_id != null && client?.customer_id.toString() === child?.customer_id?.toString()\n );\n return {\n ...child,\n ...matchingChildStats,\n };\n });\n\n return {\n ...customer,\n ...matchingClientStats,\n children: processedChildren,\n };\n }) || [];\n\n return mappedCustomers;\n }, [customers, clientData, debouncedSearchText]);\n\n const sortedData = useMemo(() => {\n if (!updatedData || !sortConfig) return updatedData;\n\n const { key, direction } = sortConfig;\n return [...updatedData].sort((a, b) => {\n const valueA = a[key];\n const valueB = b[key];\n\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n return direction === 'asc' ? valueA - valueB : valueB - valueA;\n }\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n return direction === 'asc'\n ? valueA.localeCompare(valueB)\n : valueB.localeCompare(valueA);\n }\n return 0;\n });\n }, [updatedData, sortConfig]);\n\n const renderSortIcon = (columnKey: string) => {\n if (!sortConfig || sortConfig.key !== columnKey) {\n return <SortIcon />;\n }\n return sortConfig.direction === 'asc' ? (\n <CaretDownFilledIcon />\n ) : (\n <CaretDownFilledIcon />\n );\n };\n\n //handle Redirect\n const handleRedirect = (customerId: number) => {\n if (customerId) {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: customerId,\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n } else {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: [],\n });\n }\n\n const queryParams = new URLSearchParams({\n customerId: customerId?.toString(),\n });\n //for dev\n navigate(`/orders/view/return/filter?${queryParams.toString()}`);\n\n //for local\n // navigate(`/filter?${queryParams.toString()}`);\n };\n\n //for RTS\n const handleRedirectRTS = (customerId: number, RTS: string) => {\n if (customerId) {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: customerId,\n });\n dispatch({\n type: 'SET_PAGE',\n payload: 1,\n });\n } else {\n dispatch({\n type: 'SET_CLIENT_FILTER',\n payload: [],\n });\n }\n\n const queryParams = new URLSearchParams({\n customerId: customerId?.toString(),\n type: RTS,\n });\n //for dev\n navigate(`/orders/view/return/filter?${queryParams.toString()}`);\n\n //for local\n //navigate(`/filter?${queryParams.toString()}`);\n };\n\n return (\n <>\n <StyledTableWrapper>\n <StyledTable>\n <thead>\n <tr>\n {[\n { label: 'Trading Name', key: 'trading_as', width: '180px', align: 'left' },\n { label: 'Client', key: 'customer_name', width: '180px', align: 'center' },\n { label: 'Orders', key: 'orders', width: '90px', align: 'center' },\n { label: 'Products', key: 'return_order_products', width: '90px', align: 'center' },\n { label: 'RTS', key: 'RTS', width: '80px', align: 'center' },\n { label: 'Pending', key: 'PENDING', width: '90px', align: 'center' },\n { label: 'Claims Paid', key: 'CLAIMS PAID', width: '110px', align: 'center' },\n { label: 'Dispose', key: 'DISPOSE', width: '90px', align: 'center' },\n { label: 'Re-allocate', key: 'RE-ALLOCATE', width: '110px', align: 'center' },\n { label: 'Re-Del', key: 'RE-Del', width: '90px', align: 'center' },\n { label: 'Recycle', key: 'RECYCLE', width: '90px', align: 'center' },\n { label: 'Unknown', key: 'UNKNOWN', width: '90px', align: 'center' },\n ].map(({ label, key, width, align }) => (\n <th key={key} onClick={() => handleSort(key)} style={{ whiteSpace: 'nowrap', width, textAlign: align as any }}>\n <div style={{ display: 'flex', cursor: 'pointer', justifyContent: align === 'left' ? 'flex-start' : 'center' }}>\n {label} <span>{renderSortIcon(key)}</span>\n </div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {statsLoading ? (\n <tr>\n <td colSpan={12}>\n <Skeleton active />\n </td>\n </tr>\n ) : sortedData?.length === 0 ? (\n <tr>\n <td colSpan={12}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n sortedData?.map((key: any, index: number) => {\n if (!key) return null; // Safe rendering fallback \n\n const renderDataRow = (rowKey: any, isChild: boolean = false) => {\n if (!rowKey) return null; // Prevent properties of undefined UI crashes\n\n return (\n <tr key={isChild ? `child-${rowKey?.customer_id}` : rowKey?.customer_id} style={isChild ? { backgroundColor: '#ffffff' } : {}}>\n <td\n style={{\n paddingLeft: '15px',\n color: 'inherit',\n }}\n >\n <span style={{ fontWeight: !isChild && rowKey?.children?.length > 0 ? 600 : 400 }}>\n {rowKey?.trading_as}\n </span>\n </td>\n\n <td\n onClick={() => handleRedirect(rowKey?.customer_id)}\n style={{\n color: '#0099ff',\n fontWeight: 600,\n cursor: 'pointer',\n textAlign: 'center',\n }}\n >\n <span>{rowKey?.customer_name}</span>\n </td>\n\n <td style={{ textAlign: 'center' }}>\n <ColumStyle>\n <GreyBox>{rowKey?.orders ?? 0}</GreyBox>\n </ColumStyle>\n </td>\n\n <td style={{ textAlign: 'center' }}>\n <ColumStyle>\n <GreyBox>{rowKey?.return_order_products ?? 0}</GreyBox>\n </ColumStyle>\n </td>\n <td\n style={{\n color: rowKey?.RTS > 0 ? '#0099ff' : 'inherit',\n fontWeight: rowKey?.RTS > 0 ? 600 : 'normal',\n cursor: rowKey?.RTS > 0 ? 'pointer' : 'default',\n textAlign: 'center',\n }}\n onClick={\n rowKey?.RTS > 0\n ? () => handleRedirectRTS(rowKey?.customer_id, 'RTS')\n : undefined\n }\n >\n <ColumStyle>\n <GreyBox\n style={{\n backgroundColor:\n rowKey?.RTS > 0\n ? 'rgba(99, 150, 229, 0.1)'\n : 'rgba(153, 153, 153, 0.1)',\n }}\n >\n {rowKey?.RTS ?? 0}\n </GreyBox>\n </ColumStyle>\n </td>\n\n <td style={{ textAlign: 'center' }}>\n <ColumStyle>\n <GreyBox>{rowKey?.PENDING ?? 0}</GreyBox>\n </ColumStyle>\n </td>\n <td\n style={{\n color: rowKey?.['CLAIMS PAID'] > 0 ? '#0099ff' : 'inherit',\n fontWeight: rowKey?.['CLAIMS PAID'] > 0 ? 600 : 'normal',\n cursor: rowKey?.['CLAIMS PAID'] > 0 ? 'pointer' : 'default',\n textAlign: 'center',\n }}\n onClick={\n rowKey?.['CLAIMS PAID'] > 0\n ? () => handleRedirectRTS(rowKey?.customer_id, 'CLAIMS PAID')\n : undefined\n }\n >\n <ColumStyle>\n <GreyBox\n style={{\n backgroundColor:\n rowKey?.['CLAIMS PAID'] > 0\n ? 'rgba(99, 150, 229, 0.1)'\n : 'rgba(153, 153, 153, 0.1)',\n }}\n >\n {rowKey?.['CLAIMS PAID'] ?? 0}\n </GreyBox>\n </ColumStyle>\n </td>\n <td\n style={{\n color: rowKey?.DISPOSE > 0 ? '#0099ff' : 'inherit',\n fontWeight: rowKey?.DISPOSE > 0 ? 600 : 'normal',\n cursor: rowKey?.DISPOSE > 0 ? 'pointer' : 'default',\n textAlign: 'center',\n }}\n onClick={\n rowKey?.DISPOSE > 0\n ? () => handleRedirectRTS(rowKey?.customer_id, 'DISPOSE')\n : undefined\n }\n >\n <ColumStyle>\n <GreyBox\n style={{\n backgroundColor:\n rowKey?.DISPOSE > 0\n ? 'rgba(99, 150, 229, 0.1)'\n : 'rgba(153, 153, 153, 0.1)',\n }}\n >\n {rowKey?.DISPOSE ?? 0}\n </GreyBox>\n </ColumStyle>\n </td>\n <td\n style={{\n color: rowKey?.['RE-ALLOCATE'] > 0 ? '#0099ff' : 'inherit',\n fontWeight: rowKey?.['RE-ALLOCATE'] > 0 ? 600 : 'normal',\n cursor: rowKey?.['RE-ALLOCATE'] > 0 ? 'pointer' : 'default',\n textAlign: 'center',\n }}\n onClick={\n rowKey?.['RE-ALLOCATE'] > 0\n ? () => handleRedirectRTS(rowKey?.customer_id, 'RE-ALLOCATE')\n : undefined\n }\n >\n <ColumStyle>\n <GreyBox\n style={{\n backgroundColor:\n rowKey?.['RE-ALLOCATE'] > 0\n ? 'rgba(99, 150, 229, 0.1)'\n : 'rgba(153, 153, 153, 0.1)',\n }}\n >\n {rowKey?.['RE-ALLOCATE'] ?? 0}\n </GreyBox>\n </ColumStyle>\n </td>\n <td style={{ textAlign: 'center' }}>\n <ColumStyle>\n <GreyBox>{rowKey?.['RE-DEL'] ?? 0}</GreyBox>\n </ColumStyle>\n </td>\n <td\n style={{\n color: rowKey?.RECYCLE > 0 ? '#0099ff' : 'inherit',\n fontWeight: rowKey?.RECYCLE > 0 ? 600 : 'normal',\n cursor: rowKey?.RECYCLE > 0 ? 'pointer' : 'default',\n textAlign: 'center',\n }}\n onClick={\n rowKey?.RECYCLE > 0\n ? () => handleRedirectRTS(rowKey?.customer_id, 'RECYCLE')\n : undefined\n }\n >\n <ColumStyle>\n <GreyBox\n style={{\n backgroundColor:\n rowKey?.RECYCLE > 0\n ? 'rgba(99, 150, 229, 0.1)'\n : 'rgba(153, 153, 153, 0.1)',\n }}\n >\n {rowKey?.RECYCLE ?? 0}\n </GreyBox>\n </ColumStyle>\n </td>\n <td\n style={{\n color: rowKey?.UNKNOWN > 0 ? '#0099ff' : 'inherit',\n fontWeight: rowKey?.UNKNOWN > 0 ? 600 : 'normal',\n cursor: rowKey?.UNKNOWN > 0 ? 'pointer' : 'default',\n textAlign: 'center',\n }}\n onClick={\n rowKey?.UNKNOWN > 0\n ? () => handleRedirectRTS(rowKey?.customer_id, 'UNKNOWN')\n : undefined\n }\n >\n <ColumStyle>\n <GreyBox\n style={{\n backgroundColor:\n rowKey?.UNKNOWN > 0\n ? 'rgba(99, 150, 229, 0.1)'\n : 'rgba(153, 153, 153, 0.1)',\n }}\n >\n {rowKey?.UNKNOWN ?? 0}\n </GreyBox>\n </ColumStyle>\n </td>\n </tr>\n );\n };\n\n if (!key?.children || key?.children?.length === 0) {\n return <React.Fragment key={index}>{renderDataRow(key, false)}</React.Fragment>;\n }\n\n return (\n <tr key={`group-${index}`}>\n <td colSpan={12} style={{ padding: 0, border: 'none', background: 'transparent' }}>\n <div style={{\n margin: '12px 10px',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n border: '1px solid rgba(0,0,0,0.08)',\n borderLeft: '4px solid #0099ff',\n boxShadow: 'inset 0 1px 4px rgba(0,0,0,0.02)'\n }}>\n <StyledTableWrapper style={{\n margin: '0',\n border: 'none',\n borderRadius: '15px',\n overflow: 'hidden'\n }}>\n <StyledTable style={{ marginBottom: 0 }}>\n <thead style={{ visibility: 'collapse' }}>\n <tr>\n {[\n { label: 'Trading Name', key: 'trading_as', width: '180px' },\n { label: 'Client', key: 'customer_name', width: '180px' },\n { label: 'Orders', key: 'orders', width: '90px' },\n { label: 'Products', key: 'return_order_products', width: '90px' },\n { label: 'RTS', key: 'RTS', width: '80px' },\n { label: 'Pending', key: 'PENDING', width: '90px' },\n { label: 'Claims Paid', key: 'CLAIMS PAID', width: '110px' },\n { label: 'Dispose', key: 'DISPOSE', width: '90px' },\n { label: 'Re-allocate', key: 'RE-ALLOCATE', width: '110px' },\n { label: 'Re-Del', key: 'RE-Del', width: '90px' },\n { label: 'Recycle', key: 'RECYCLE', width: '90px' },\n { label: 'Unknown', key: 'UNKNOWN', width: '90px' },\n ].map(({ label, key: thKey, width }) => (\n <th key={`hidden-${thKey}`} style={{ padding: '0 15px', border: 'none', height: 0, width }}>\n <div style={{ display: 'flex' }}>{label}</div>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {renderDataRow(key, false)}\n {key?.children?.map((child: any) => renderDataRow(child, true))}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </div>\n </td>\n </tr>\n );\n })\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </>\n );\n};\n\nexport default ReturnTable;\n","import React, { useEffect, useState } from 'react';\nimport {\n useItemsPerOverviewPage,\n useStatsLoading,\n UsePaginationOverviewData,\n} from './store/store';\nimport Filters from './filters/Filters';\nimport styled from 'styled-components';\nimport {\n useClientLoading,\n useClientPortal,\n useCustomerData,\n useStickyStatus,\n} from '../store';\nimport HeaderFilter from './header-filters/HeaderFilter';\nimport {\n DocumentTitle,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport { useAtom, useClientData } from '../order-view/store';\nimport { ClientData } from './common/interface';\nimport ReturnFilter from './return-order-table/return-orders-filters/ReturnFilter';\nimport { Text } from './filters/FilterStyle';\nimport ReturnTable from './table/ReturnTable';\nimport { overviewfiltersReducerAtom } from './header-filters/overViewFilter';\nimport Pagination from './table-view/Pagination';\nimport { notification } from 'antd';\nimport { ApiResponse } from '../types';\n\nfunction ReturnMainTable() {\n const [state] = useAtom(overviewfiltersReducerAtom);\n const [paginationObj, setPaginationObject] = UsePaginationOverviewData();\n const [, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useItemsPerOverviewPage();\n const { 'x-filters': filters, 'x-pagination': pagination } = state;\n const { page, total } = paginationObj;\n // const [selectedClient] = useTableName();\n const [isScrolled] = useStickyStatus();\n const [, setLoading] = useStatsLoading();\n const [, setClientData] = useClientData();\n const [, setCustomers] = useCustomerData();\n // const [tableName] = useTableName();\n const queryParams = new URLSearchParams(location.search);\n const [clientPortal] = useClientPortal();\n const [clientLoading] = useClientLoading();\n\n const customerId = queryParams.get('customerId');\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n };\n const handleItemsPerPageChange = (itemsPerPage: number) => {\n setItemsPerPage(itemsPerPage);\n };\n\n //API for client data\n const { data: fetchedCustomerData, loading: loading, fetchData } = useAxios<\n ApiResponse\n >({\n endpoint: `/v1/return/product/customers/?grouped=true`,\n method: 'GET',\n //@ts-ignore\n pagination: { is_pagination: false },\n showLoader: false,\n });\n\n useEffect(() => {\n if (!clientPortal && !clientLoading) {\n fetchData();\n }\n }, [clientLoading]);\n\n useEffect(() => {\n if (fetchedCustomerData && fetchedCustomerData?.data) {\n setCustomers(fetchedCustomerData?.data);\n }\n }, [loading]);\n\n const {\n data: fetchedClientData,\n loading: statsDataLoading,\n paginationData,\n fetchData: fetchProductStats,\n } = useAxios<{\n data: ClientData[];\n }>({\n endpoint: `/v1/return/product/stats/`,\n method: 'GET',\n //@ts-ignore\n pagination: pagination,\n filters: filters,\n showLoader: false,\n });\n\n useEffect(() => {\n if (!clientPortal && !clientLoading) {\n fetchProductStats();\n }\n }, [clientLoading]);\n\n useEffect(() => {\n setLoading(statsDataLoading);\n if (fetchedClientData && fetchedClientData.data) {\n const result = fetchedClientData?.data;\n setClientData(result);\n if (paginationData) {\n try {\n const { count, ...rest } = JSON.parse(paginationData);\n setPaginationObject(rest);\n } catch (error) {\n console.error('Error parsing paginationData:', error);\n notification.error({\n message: 'Error',\n description: 'Failed to parse pagination data',\n });\n }\n }\n }\n }, [statsDataLoading]);\n\n return (\n <>\n <DocumentTitle title=\"Client Return Products\" />\n <DashBoardWrapper className={` ${isScrolled ? 'stickyTableHead' : ''}`}>\n {/* <RouterHeader /> */}\n <div className=\"Tableconatiner\">\n <HeaderFilter />\n <Container>\n <Row>\n <Text>Client Return</Text>\n {customerId ? <ReturnFilter /> : <Filters />}\n </Row>\n <ReturnTable />\n </Container>\n {total > 0 && (\n <Pagination\n currentPage={page}\n totalItems={total}\n itemsPerPage={itemsPerPage}\n onPageChange={handlePageChange}\n onItemsPerPageChange={handleItemsPerPageChange}\n ></Pagination>\n )}\n </div>\n </DashBoardWrapper>\n </>\n );\n}\n\nexport default ReturnMainTable;\n\nconst Row = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nconst Container = styled.div`\n position: relative;\n top: -46px;\n`;\nconst DashBoardWrapper = styled.section`\n .Tableconatiner {\n border-radius: 12px;\n background: #fff;\n box-shadow: -2px 0px 12px 0px rgba(56, 71, 109, 0.1);\n display: block;\n padding: 15px 20px;\n }\n .headerWrap,\n .tableData,\n .styleCovered {\n transition: all ease 0.5s;\n }\n &.stickyTableHead {\n h2 {\n font-size: 21px;\n }\n .headerWrap {\n height: 84px;\n padding: 10px;\n border-radius: 0px 0px 15px 15px;\n > div {\n position: relative;\n z-index: 10;\n }\n }\n .styleCovered {\n margin-top: -32px;\n width: 67%;\n float: right;\n gap: 5px;\n padding-right: 11px;\n\n li {\n padding: 4px 10px 5px 5px;\n gap: 5px;\n .svgCover {\n width: 30px;\n height: 30px;\n svg {\n height: auto;\n width: 58%;\n }\n }\n .countDigit {\n font-size: 19px;\n }\n }\n .countMess {\n font-size: 13px;\n }\n }\n .dmsBulkFilter {\n min-height: unset;\n gap: 4px;\n > div {\n padding: 4px 12px;\n label {\n font-size: 11px;\n }\n }\n }\n\n .StyledFilterList {\n gap: 4px;\n li {\n height: 29px;\n padding: 3px 8px;\n gap: 4px;\n .StyledFilterBtnIcon {\n width: 20px;\n height: 20px;\n svh {\n width: 10px;\n height: auto;\n }\n }\n .StyledFilterBtnLabel {\n font-size: 13px;\n }\n }\n }\n .StyledFilterLabel {\n padding-left: 10px;\n span {\n font-size: 13px;\n }\n }\n .cardcontainer.tableData {\n max-height: calc(100vh - 310px);\n min-height: calc(100vh - 310px);\n }\n\n .tableData {\n max-height: calc(100vh - 320px);\n min-height: calc(100vh - 320px);\n\n margin-top: 8px;\n thead {\n position: sticky;\n top: 0;\n z-index: 9;\n th {\n font-size: 13px;\n padding: 2px 15px;\n }\n }\n }\n }\n`;\n","import React from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport OrderView from './components/order-view';\nimport ReturnMainTable from './components/order-daily-overview';\n\nconst OrderViewQueryHandler = () => {\n const [searchParams] = useSearchParams(); // Access the query params\n const orderId = searchParams.get('order'); // Get the 'order' param\n\n // If 'order' query param is present, render OrderViewWrapper, otherwise redirect to home\n return orderId ? <OrderView /> : <ReturnMainTable />;\n};\n\nexport default OrderViewQueryHandler;\n","import {\n Checkbox,\n displayValueOrNA,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport { Empty, notification, Skeleton } from 'antd';\nimport { format } from 'date-fns';\nimport { useAtom } from 'jotai';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { filtersReducerAtom } from '../order-daily-overview/header-filters/filterStore';\nimport {\n useClientOutstandingReturnData,\n useClientPortal,\n useLocationData,\n useSearchText,\n useSelectedClientPortOrders,\n} from '../store';\nimport { usefetchAgain } from '../order-view/store';\nimport {\n useLoading,\n UsePaginationData,\n usePrintOptionTOggle,\n} from '../order-daily-overview/store/store';\nimport SortIcon from '../../common/SortIcon';\nimport CaretDownFilledIcon from '../../common/CaretDownFilledIcon';\nimport { ApiResponse } from '../types';\nimport {\n CustomDrop,\n EmptyDataContainer,\n StyledTable,\n StyledTableWrapper,\n} from '../order-daily-overview/return-order-table/return-orders-filters/returnstyles';\nimport PrinterIcon from '../../assets/icons/PrinterIcon';\nimport DownIcon from '../../assets/icons/DownIcon';\nimport PrintDropDownReturn from '../order-view/details-filters/left-side-filters/dropdowns/PrintDropDownReturn';\nimport { dateFilterCPReducer } from './DateFilterStore';\nimport { WEIGHT_UNIT } from '../../common/utils';\n\nconst OutstandingTable = () => {\n const [statePagination] = useAtom(filtersReducerAtom);\n const { 'x-pagination': pagination } = statePagination;\n const [\n outstandingReturnData,\n setOutstandingReturnData,\n ] = useClientOutstandingReturnData();\n const [load, setLoading] = useLoading();\n const dropdownRefParent = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [printToogle, setPrintToggle] = usePrintOptionTOggle();\n const [locationData] = useLocationData();\n const [, setPaginationObject] = UsePaginationData();\n const [callForFetch] = usefetchAgain();\n const [clientPortal] = useClientPortal();\n const [selectedOrderIds, setSelectedOrderIds] = useSelectedClientPortOrders();\n const [selectClientAll, setSelectClientAll] = useState(false);\n const [debouncedSearchText] = useSearchText();\n\n const [state] = useAtom(dateFilterCPReducer);\n const { 'x-filters': filters } = state;\n\n //sorting\n const [sortConfig, setSortConfig] = useState<{\n key: string;\n direction: 'asc' | 'desc';\n } | null>(null);\n\n const handleSort = (key: string) => {\n setSortConfig((prev: any) => {\n if (prev?.key === key && prev.direction === 'asc') {\n return { key, direction: 'desc' };\n }\n return { key, direction: 'asc' };\n });\n };\n\n const sortedData = useMemo(() => {\n if (!outstandingReturnData || !sortConfig) return outstandingReturnData;\n\n const { key, direction } = sortConfig;\n return [...outstandingReturnData].sort((a, b) => {\n const valueA = a[key];\n const valueB = b[key];\n\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n return direction === 'asc' ? valueA - valueB : valueB - valueA;\n }\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n return direction === 'asc'\n ? valueA.localeCompare(valueB)\n : valueB.localeCompare(valueA);\n }\n return 0;\n });\n }, [outstandingReturnData, sortConfig]);\n\n const renderSortIcon = (columnKey: string) => {\n if (!sortConfig || sortConfig.key !== columnKey) {\n return <SortIcon />;\n }\n return sortConfig.direction === 'asc' ? (\n <CaretDownFilledIcon />\n ) : (\n <CaretDownFilledIcon />\n );\n };\n\n const OpenDropDown = (index: number) => {\n setPrintToggle(prevIndex => (prevIndex === index ? null : index));\n };\n // Close dropdown outside click\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setPrintToggle(null);\n }\n };\n\n const cleanedFilters = filters.filter(f => f.field !== 'order_status');\n const baseFilters = [\n { field: 'isdeleted', op: '=', value: 0 },\n { field: 'product_return_action_id', op: '=', value: 'RTS' },\n ];\n\n const modifiedFilters = [...baseFilters, ...cleanedFilters];\n const {\n data: fetchedOrderData,\n loading: returnDataLoad,\n paginationData,\n fetchData,\n } = useAxios<ApiResponse>({\n endpoint: '/v1/return/product/pending/',\n method: 'GET',\n filters: modifiedFilters,\n pagination: pagination,\n });\n\n useEffect(() => {\n if (clientPortal && debouncedSearchText === '') {\n fetchData();\n }\n }, [JSON.stringify(modifiedFilters), debouncedSearchText, pagination]);\n\n useEffect(() => {\n setLoading(returnDataLoad);\n if (fetchedOrderData && fetchedOrderData?.data) {\n setOutstandingReturnData(fetchedOrderData?.data);\n if (paginationData) {\n try {\n const { count, ...rest } = JSON.parse(paginationData);\n setPaginationObject(rest);\n } catch (error) {\n console.error('Error parsing paginationData:', error);\n notification.error({\n message: 'Error',\n description: 'Failed to parse pagination data',\n });\n }\n } else {\n notification.error({\n message: 'Error',\n description: 'Pagination data is null or undefined',\n });\n }\n }\n }, [fetchedOrderData, returnDataLoad]);\n\n useEffect(() => {\n setLoading(returnDataLoad);\n if (fetchedOrderData && fetchedOrderData?.data && locationData) {\n const updatedReturnData = fetchedOrderData.data.map(returnItem => {\n const matchingLocation = locationData.find(\n (location: any) => location?.token === returnItem?.return_location\n );\n return {\n ...returnItem,\n new_location: matchingLocation\n ? matchingLocation?.location_name\n : null,\n };\n });\n\n setOutstandingReturnData(updatedReturnData);\n }\n }, [fetchedOrderData, returnDataLoad, locationData, state, callForFetch]);\n\n //Client Portal\n const handleSelectOrderId = (id: string | number) => {\n setSelectedOrderIds(prev =>\n prev.includes(id) ? prev.filter(orderId => orderId !== id) : [...prev, id]\n );\n };\n\n const handleClientSelectAll = (e: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = e.target.checked;\n setSelectClientAll(isChecked);\n\n if (isChecked) {\n setSelectedOrderIds(\n outstandingReturnData?.map((item: any) => item?.order_id) || []\n );\n } else {\n setSelectedOrderIds([]);\n }\n };\n return (\n <>\n <StyledTableWrapper className=\"fortables\">\n <StyledTable>\n <thead>\n <tr>\n {/* <th className=\"emailInvoiceCheckbox\">\n <Checkbox checked={selectAll} onChange={handleSelectAll} />\n </th> */}\n <th className=\"emailInvoiceCheckbox\">\n <Checkbox\n checked={selectClientAll}\n onChange={handleClientSelectAll}\n />\n </th>\n <th onClick={() => handleSort('return_location_name')}>\n <div className=\"sortIconClass\">\n Return Location {renderSortIcon('return_location_name')}\n </div>\n </th>\n <th onClick={() => handleSort('recipient_name')}>\n <div className=\"sortIconClass\">\n Recipient {renderSortIcon('recipient_name')}\n </div>\n </th>\n <th>Return Action</th>\n <th>Code</th>\n <th>Description</th>\n <th>Part</th>\n <th onClick={() => handleSort('weight')}>\n <div className=\"sortIconClass\">\n Weight ({WEIGHT_UNIT}) {renderSortIcon('weight')}\n </div>\n </th>\n <th>CBM</th>\n <th onClick={() => handleSort('return_reason')}>\n <div className=\"sortIconClass\">\n Return Reason {renderSortIcon('return_reason')}\n </div>\n </th>\n <th>Collected</th>\n <th onClick={() => handleSort('collection_reason')}>\n <div className=\"sortIconClass\">\n Collection Reason {renderSortIcon('collection_reason')}\n </div>\n </th>\n <th className=\"emailInvoiceShare\">Labels</th>\n </tr>\n </thead>\n <tbody>\n {load ? (\n <tr>\n <td colSpan={14}>\n <Skeleton active />\n </td>\n </tr>\n ) : sortedData?.length === 0 ? (\n <tr>\n <td colSpan={14}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n sortedData?.map((item: any, index: any) => (\n <tr key={item.id}>\n <td>\n <Checkbox\n checked={selectedOrderIds.includes(item?.order_id)}\n onChange={() => handleSelectOrderId(item?.order_id)}\n />\n </td>\n <td> {displayValueOrNA(item?.return_location_name)}</td>\n <td>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n paddingLeft: 0,\n }}\n >\n <NavLink to={`/orders/view/${item?.order_id}`}>\n {displayValueOrNA(item?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(item?.postcode)}\n </li>\n </ul>\n </td>\n <td>{displayValueOrNA(item?.product_return_action)}</td>\n <td>{displayValueOrNA(item?.code)}</td>\n <td>{displayValueOrNA(item?.description)}</td>\n <td>{displayValueOrNA(item?.part)}</td>\n <td>\n {displayValueOrNA(item?.weight)}{' '}\n {item?.weight && item?.weight !== null ? WEIGHT_UNIT : ''}\n </td>\n <td>{displayValueOrNA(item?.cube)}</td>\n <td>{displayValueOrNA(item?.return_reason)}</td>\n <td>\n {item?.collected_at\n ? format(new Date(item?.collected_at), 'dd/MM/yyyy')\n : 'UNKNOWN'}\n </td>\n\n <td>{displayValueOrNA(item?.collection_reason)}</td>\n <td>\n <ul className=\"actionbox\">\n <CustomDrop\n ref={dropdownRefParent}\n className={printToogle === index ? 'active' : ''}\n >\n <li\n className=\"shareIconContainer\"\n onClick={() => OpenDropDown(index)}\n >\n <PrinterIcon />\n <DownIcon />\n {printToogle === index && (\n <div ref={dropdownRef}>\n <PrintDropDownReturn\n legacyURL={item?.return_order_product_label}\n legacyProductID={item?.legacy_product_id}\n />\n </div>\n )}\n </li>\n </CustomDrop>\n </ul>\n </td>\n </tr>\n ))\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </>\n );\n};\n\nexport default OutstandingTable;\n","import { Empty } from 'antd';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Skeleton } from 'antd';\nimport { NavLink } from 'react-router-dom';\nimport {\n Checkbox,\n displayValueOrNA,\n} from '@bjsdistribution/dms-component-library';\nimport {\n useLoading,\n usePrintOptionTOggle,\n} from '../../order-daily-overview/store/store';\nimport {\n useReturnConfirmedOrderData,\n useSelectedClientAfterOrders,\n} from '../../store';\nimport { useOrderId } from '../../order-view/store';\nimport SortIcon from '../../../common/SortIcon';\nimport CaretDownFilledIcon from '../../../common/CaretDownFilledIcon';\nimport {\n CustomDrop,\n EmptyDataContainer,\n StyledTable,\n StyledTableWrapper,\n} from '../../order-daily-overview/return-order-table/return-orders-filters/returnstyles';\nimport PrinterIcon from '../../../assets/icons/PrinterIcon';\nimport DownIcon from '../../../assets/icons/DownIcon';\nimport PrintDropDown from '../../order-daily-overview/shared/elements/PrintDropDown';\nimport { formatDate } from '../../order-daily-overview/shared/utlis';\nimport dayjs from 'dayjs';\nimport { WEIGHT_UNIT } from '../../../common/utils';\n\nconst ReturnConfirmedTable = () => {\n const dropdownRefParent = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [printToogle, setPrintToggle] = usePrintOptionTOggle();\n const [, setOrderId] = useOrderId();\n const [returnConfirmedTable] = useReturnConfirmedOrderData();\n const [loading] = useLoading();\n const [selectClientAll, setSelectClientAll] = useState(false);\n const [\n selectedOrderIds,\n setSelectedOrderIds,\n ] = useSelectedClientAfterOrders();\n //sorting\n const [sortConfig, setSortConfig] = useState<{\n key: string;\n direction: 'asc' | 'desc';\n } | null>(null);\n\n const handleSort = (key: string) => {\n setSortConfig((prev: any) => {\n if (prev?.key === key && prev.direction === 'asc') {\n return { key, direction: 'desc' };\n }\n return { key, direction: 'asc' };\n });\n };\n\n const sortedData = useMemo(() => {\n if (!returnConfirmedTable || !sortConfig) return returnConfirmedTable;\n\n const { key, direction } = sortConfig;\n return [...returnConfirmedTable].sort((a, b) => {\n const valueA = a[key];\n const valueB = b[key];\n\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n return direction === 'asc' ? valueA - valueB : valueB - valueA;\n }\n if (typeof valueA === 'string' && typeof valueB === 'string') {\n return direction === 'asc'\n ? valueA.localeCompare(valueB)\n : valueB.localeCompare(valueA);\n }\n return 0;\n });\n }, [returnConfirmedTable, sortConfig]);\n\n const renderSortIcon = (columnKey: string) => {\n if (!sortConfig || sortConfig.key !== columnKey) {\n return <SortIcon />;\n }\n return sortConfig.direction === 'asc' ? (\n <CaretDownFilledIcon />\n ) : (\n <CaretDownFilledIcon />\n );\n };\n\n const OpenDropDown = (index: number) => {\n setPrintToggle((prevIndex: any) => (prevIndex === index ? null : index));\n };\n\n // Close dropdown outside click\n useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n setPrintToggle(null);\n }\n };\n\n const getStatusClass = (status: string) => {\n switch (status) {\n case 'Cancelled':\n case 'Failed':\n return { color: '#E95252', background: 'rgba(233, 82, 82, 0.15)' };\n case 'On Hold':\n return { color: '#F4A503', background: '#FFF1D6' };\n case 'Sub-Contracted':\n case 'SC':\n return { color: '#F4A503', background: '#FFF1D6' };\n case 'Awaiting route':\n case 'Awaiting Confirmation':\n return { color: '#845ADF', background: 'rgba(132, 90, 223, 0.15)' };\n case 'Completed':\n return {\n color: '#1F9254',\n background: 'rgba(41, 204, 106, 0.15)',\n };\n case 'Outstanding':\n return { color: '#FF9900', background: 'rgba(255, 153, 0, 0.15)' };\n case 'Routed':\n return { color: '#6396E5', background: 'rgba(99, 150, 229, 0.15)' };\n default:\n return { color: '#000', background: '#fff' };\n }\n };\n\n const handleSelectOrderId = (id: string | number) => {\n setSelectedOrderIds(prev =>\n prev.includes(id) ? prev.filter(orderId => orderId !== id) : [...prev, id]\n );\n };\n const handleClientSelectAll = (e: React.ChangeEvent<HTMLInputElement>) => {\n const isChecked = e.target.checked;\n setSelectClientAll(isChecked);\n\n if (isChecked) {\n setSelectedOrderIds(\n returnConfirmedTable?.map((item: any) => item?.id) || []\n );\n } else {\n setSelectedOrderIds([]);\n }\n };\n\n return (\n <>\n <StyledTableWrapper className=\"fortables\">\n <StyledTable>\n <thead>\n <tr>\n {/* <th className=\"emailInvoiceCheckbox\">\n <Checkbox checked={false} />\n </th> */}\n <th className=\"emailInvoiceCheckbox\">\n <Checkbox\n checked={selectClientAll}\n onChange={handleClientSelectAll}\n />\n </th>\n <th onClick={() => handleSort('created_at')}>\n <div className=\"sortIconClass\">\n Created {renderSortIcon('created_at')}\n </div>\n </th>\n {/* <th onClick={() => handleSort('return_location_name')}>\n <div className=\"sortIconClass\">\n Delivery Date {renderSortIcon('return_location_name')}\n </div>\n </th> */}\n <th onClick={() => handleSort('return_location_name')}>\n <div className=\"sortIconClass\">\n Return Location {renderSortIcon('return_location_name')}\n </div>\n </th>\n <th onClick={() => handleSort('recipient_name')}>\n <div className=\"sortIconClass\">\n Recipient {renderSortIcon('recipient_name')}\n </div>\n </th>\n {/* <th onClick={() => handleSort('recipient_reference')}> */}\n <th>\n {/* <div className=\"sortIconClass\"> */}\n Recipient Reference{renderSortIcon('recipient_reference')}\n {/* </div> */}\n </th>\n <th>Sender</th>\n <th>Consignment</th>\n <th>Return Order No</th>\n <th> Total Parts</th>\n <th onClick={() => handleSort('weight')}>\n <div className=\"sortIconClass\">\n Total Weight ({WEIGHT_UNIT}) {renderSortIcon('weight')}\n </div>\n </th>\n <th onClick={() => handleSort('cube')}>\n <div className=\"sortIconClass\">\n Total CBM {renderSortIcon('cube')}\n </div>\n </th>\n <th>Status</th>\n <th className=\"emailInvoiceShare\">Labels</th>\n </tr>\n </thead>\n <tbody>\n {loading ? (\n <tr>\n <td colSpan={16}>\n <Skeleton active />\n </td>\n <td colSpan={16}></td>\n </tr>\n ) : sortedData?.length === 0 ? (\n <tr>\n <td colSpan={16}>\n <EmptyDataContainer>\n <Empty />\n </EmptyDataContainer>\n </td>\n </tr>\n ) : (\n sortedData?.map((item: any, index: any) => {\n const statusMapping: any = {\n cancelled: 'Cancelled',\n 'on hold': 'On Hold',\n subcontracted: 'Sub-Contracted',\n SC: 'Sub-Contracted',\n 'awaiting route': 'Awaiting route',\n 'awaiting confirmation': 'Awaiting Confirmation',\n complete: 'Completed',\n outstanding: 'Outstanding',\n routed: 'Routed',\n failed: 'Failed',\n confirmed: 'Confirmed',\n };\n const status = statusMapping[item?.status_value] || 'Unknown';\n const statusClass = getStatusClass(status);\n\n return (\n <tr key={item.id}>\n <td>\n <Checkbox\n checked={selectedOrderIds.includes(item?.id)}\n onChange={() => handleSelectOrderId(item?.id)}\n />\n </td>\n <td>{formatDate(new Date(item?.created_at))}</td>\n {/* <td>{formatDate(new Date(item?.action_date))}</td> */}\n <td>{displayValueOrNA(item?.return_location_name)}</td>\n <td onClick={() => setOrderId(item.id)}>\n <ul style={{ listStyleType: 'none', padding: 0 }}>\n <li\n style={{\n color: '#0099ff',\n fontWeight: 600,\n paddingLeft: 0,\n }}\n >\n <NavLink to={`/return/view/${item.id}`}>\n {displayValueOrNA(item?.recipient_name)}\n </NavLink>\n </li>\n <li style={{ color: '#888075' }}>\n {displayValueOrNA(item?.postcode)}\n </li>\n </ul>\n </td>\n <td>{displayValueOrNA(item?.recipient_reference)}</td>\n\n <td>{displayValueOrNA(item?.customer_name)}</td>\n\n <td>{displayValueOrNA(item?.consignment)}</td>\n <td>{displayValueOrNA(item?.order_number)}</td>\n\n <td>{displayValueOrNA(item?.total_products)}</td>\n <td>\n {displayValueOrNA(item?.weight)}{' '}\n {item?.weight && item?.weight > 0 ? WEIGHT_UNIT : ''}\n </td>\n\n <td>{displayValueOrNA(item?.cube)}</td>\n\n <td>\n <ul\n className=\"statuscontainer\"\n style={{\n listStyleType: 'none',\n background: statusClass.background,\n }}\n >\n <li\n className=\"statustext\"\n style={{ color: statusClass.color }}\n >\n {status}\n\n {(status === 'Completed' || status === 'Failed') &&\n item?.action_date\n ? ` - ${dayjs(item?.action_date).format(\n 'DD/MM/YYYY'\n )}`\n : ''}\n </li>\n </ul>\n </td>\n <td>\n <ul className=\"actionbox\">\n <CustomDrop\n ref={dropdownRefParent}\n className={printToogle === index ? 'active' : ''}\n >\n <li\n className=\"shareIconContainer\"\n onClick={() => OpenDropDown(index)}\n >\n <PrinterIcon />\n <DownIcon />\n\n {printToogle === index && (\n <div ref={dropdownRef}>\n <PrintDropDown legacyProductId={item} />\n </div>\n )}\n </li>\n </CustomDrop>\n </ul>\n </td>\n </tr>\n );\n })\n )}\n </tbody>\n </StyledTable>\n </StyledTableWrapper>\n </>\n );\n};\n\nexport default ReturnConfirmedTable;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport ReturnConfirmedTable from './ReturnConfirmedTable';\nimport {\n useItemsPerReturnPage,\n UsePaginationReturnData,\n} from '../../order-daily-overview/store/store';\nimport ReturnPagination from '../../order-daily-overview/table-view/ReturnPagination';\n\nconst ConfirmedMain = () => {\n const [paginationObj] = UsePaginationReturnData();\n const [, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useItemsPerReturnPage();\n // const [, setPaginationObject] = UsePaginationData();\n const { page, total } = paginationObj;\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n };\n const handleItemsPerPageChange = (itemsPerPage: number) => {\n setItemsPerPage(itemsPerPage);\n };\n // const { status } = useParams();\n // API called\n // const {\n // data: fetchedReturnOrderData,\n // loading,\n // paginationData,\n // fetchData,\n // } = useAxios<ApiResponse>({\n // endpoint: '/v1/return/orders/',\n // method: 'GET',\n // filters: filters,\n // pagination: pagination,\n // });\n\n return (\n <div>\n <DashBoardWrapper>\n {/* <RouterHeader /> */}\n <div className=\"Tableconatiner\">\n {/* <HeaderFilter /> */}\n <Container>\n <ReturnConfirmedTable />\n {total > 0 && (\n <ReturnPagination\n currentPage={page}\n totalItems={total}\n itemsPerPage={itemsPerPage}\n onPageChange={handlePageChange}\n onItemsPerPageChange={handleItemsPerPageChange}\n ></ReturnPagination>\n )}\n </Container>\n </div>\n </DashBoardWrapper>\n </div>\n );\n};\nconst Container = styled.div`\n position: relative;\n /* top: -30px; */\n`;\nconst DashBoardWrapper = styled.section`\n .Tableconatiner {\n border-radius: 12px;\n background: #fff;\n box-shadow: -2px 0px 12px 0px rgba(56, 71, 109, 0.1);\n display: block;\n padding: 15px 20px;\n }\n .headerWrap,\n .tableData,\n .styleCovered {\n transition: all ease 0.5s;\n }\n &.stickyTableHead {\n h2 {\n font-size: 21px;\n }\n .headerWrap {\n height: 84px;\n padding: 10px;\n border-radius: 0px 0px 15px 15px;\n > div {\n position: relative;\n z-index: 10;\n }\n }\n .styleCovered {\n margin-top: -32px;\n width: 67%;\n float: right;\n gap: 5px;\n padding-right: 11px;\n\n li {\n padding: 4px 10px 5px 5px;\n gap: 5px;\n .svgCover {\n width: 30px;\n height: 30px;\n svg {\n height: auto;\n width: 58%;\n }\n }\n .countDigit {\n font-size: 19px;\n }\n }\n .countMess {\n font-size: 13px;\n }\n }\n .dmsBulkFilter {\n min-height: unset;\n gap: 4px;\n > div {\n padding: 4px 12px;\n label {\n font-size: 11px;\n }\n }\n }\n\n .StyledFilterList {\n gap: 4px;\n li {\n height: 29px;\n padding: 3px 8px;\n gap: 4px;\n .StyledFilterBtnIcon {\n width: 20px;\n height: 20px;\n svh {\n width: 10px;\n height: auto;\n }\n }\n .StyledFilterBtnLabel {\n font-size: 13px;\n }\n }\n }\n .StyledFilterLabel {\n padding-left: 10px;\n span {\n font-size: 13px;\n }\n }\n .cardcontainer.tableData {\n max-height: calc(100vh - 310px);\n min-height: calc(100vh - 310px);\n }\n\n .tableData {\n max-height: calc(100vh - 320px);\n min-height: calc(100vh - 320px);\n\n margin-top: 8px;\n thead {\n position: sticky;\n top: 0;\n z-index: 9;\n th {\n font-size: 13px;\n padding: 2px 15px;\n }\n }\n }\n }\n`;\n\nexport default ConfirmedMain;\n","import styled from 'styled-components';\n\nexport const HeaderWrapper = styled.div`\n display: flex;\n padding: 20px;\n gap: 10px;\n border-radius: 0px 0px 30px 30px;\n background: #313130;\n height: 151px;\n background: url(./assets/bgBlack.png) no-repeat;\n background-size: cover;\n background-color: #000000d9;\n`;\n\nexport const StyledFlex = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n`;\n\nexport const GlobalFilterWrapper = styled.div`\n display: flex;\n align-items: baseline;\n gap: 10px;\n z-index: 999;\n`;\n\nexport const DatePickerWrap = styled.div`\n position: relative;\n\n input[type='text'] {\n border-radius: 20px;\n background: var(--Flowkit-White, #fff);\n border: none;\n color: #6a7378;\n font-size: 14px;\n font-weight: 400;\n line-height: 18px;\n padding: 8px 0;\n padding-left: 33px;\n max-width: 154px;\n &:focus-visible {\n outline: none;\n }\n }\n svg {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\ninterface TitleProps {\n title: string;\n}\n\nconst HeaderTitle = (props: TitleProps) => {\n return (\n <>\n <Title>{props.title}</Title>\n </>\n );\n};\n\nexport default HeaderTitle;\nconst Title = styled.h2`\n margin: 0px;\n padding: 0px;\n color: #fff;\n font-size: 26px;\n font-style: normal;\n font-weight: 700;\n line-height: 36px;\n text-transform: uppercase;\n margin-bottom: 8px;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\ninterface BreadCrumbProps {\n title?: string;\n subtitle?: string;\n subPart?: string;\n}\n\nfunction Breadcrumb(props: BreadCrumbProps) {\n return (\n <BreadcrumbContainer>\n <BreadcrumbList>{props.title || ''}</BreadcrumbList>\n <BreadcrumbList>{props.subtitle || ''}</BreadcrumbList>\n {props.subPart && (\n <>\n <BreadcrumbList>{props.subPart}</BreadcrumbList>\n </>\n )}\n </BreadcrumbContainer>\n );\n}\n\nconst BreadcrumbContainer = styled.div`\n display: flex;\n`;\n\nconst BreadcrumbList = styled.span`\n color: #edebe8;\n font-family: 'Open Sans', sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n`;\n\nexport default Breadcrumb;\n","import { format } from 'date-fns';\n\nexport const EscalationCategory = [\n {\n label: 'Failure-Not Failure',\n value: 'Failure-Not Failure',\n },\n {\n label: 'Failure Fault',\n value: 'Failure Fault',\n },\n {\n label: 'Failure Upgrade',\n value: 'Failure Upgrade',\n },\n {\n label: 'Elite',\n value: 'Elite',\n },\n {\n label: 'New Client',\n value: 'New Client',\n },\n];\n\nexport const EscalationLevel = [\n {\n label: 'VIP4',\n value: 'VIP4',\n },\n {\n label: 'VIP3',\n value: 'VIP3',\n },\n {\n label: 'VIP2',\n value: 'VIP2',\n },\n {\n label: 'VIP1',\n value: 'VIP1',\n },\n {\n label: 'New Client',\n value: 'New Client',\n },\n];\nexport const EscalationReason = [\n {\n label: 'INBOUND / DAMAGE - ITEM UNFIT TO BE DELIVERED - by Co',\n value: 'INBOUND / DAMAGE - ITEM UNFIT TO BE DELIVERED - by Co',\n },\n {\n label: 'INBOUND / PRODUCT ISSUE - WRONG ITEM BEEN DESPATCHED - by Co',\n value: 'INBOUND / PRODUCT ISSUE - WRONG ITEM BEEN DESPATCHED - by Co',\n },\n {\n label: 'INBOUND / CANCEL - BEFORE ROUTING - by Co',\n value: 'INBOUND / CANCEL - BEFORE ROUTING - by Co',\n },\n {\n label: 'PRE-CALL / ADDRESS - WRONG ADDRESS (UNABLE TO RE-ROUTE) - by BJS',\n value: 'PRE-CALL / ADDRESS - WRONG ADDRESS (UNABLE TO RE-ROUTE) - by BJS',\n },\n {\n label: 'Predated charges PRE-CALL / DEL WINDOW - NOT SUITABLE - by CUST',\n value: 'Predated charges PRE-CALL / DEL WINDOW - NOT SUITABLE - by CUST',\n },\n {\n label: 'ON-ROUTE / ADDRESS - WRONG ADDRESS (UNABLE TO RE-ROUTE) - by BJS',\n value: 'ON-ROUTE / ADDRESS - WRONG ADDRESS (UNABLE TO RE-ROUTE) - by BJS',\n },\n {\n label: 'LOADING / STOCK RECEIPT - NO STK RECEIVED - Co',\n value: 'LOADING / STOCK RECEIPT - NO STK RECEIVED - Co',\n },\n];\nexport const EscalationStatus = [\n {\n label: 'Pending',\n value: 'Pending',\n },\n {\n label: 'Stock Check',\n value: 'Stock Check',\n },\n {\n label: 'Ready to Post Call',\n value: 'Ready to Post Call',\n },\n {\n label: 'Post Called',\n value: 'Post Called',\n },\n {\n label: 'Completed',\n value: 'Completed',\n },\n];\n\nexport const getIntegerValue = (value: number) => {\n return value ?? 0;\n};\n\nexport const getStringValue = (value: string) => {\n return value === '' ? 'N/A' : value;\n};\n\nexport const FormattedDate = ({ date }: any) => {\n const formattedDate = format(new Date(date), 'dd/MM/yyyy');\n return formattedDate;\n};\n\nexport const javascriptStringDumpToJSON = function(data: string) {\n let d = data.replace(new RegExp(`(?<=[a-zA-Z])'(?=[a-zA-Z ])`, 'g'), '__');\n d = d.replace(new RegExp(\"'\", 'g'), '\"');\n d = d.replace(new RegExp('__', 'g'), \"'\");\n d = d.replace(new RegExp('None', 'g'), 'null');\n d = d.replace(new RegExp('False', 'g'), 'false');\n d = d.replace(new RegExp('True', 'g'), 'true');\n d = d.replace(new RegExp(/(\\d+)\\s*[a-zA-Z]/gm), '$1');\n return JSON.parse(d);\n};\n","import {\n CrossIcon,\n SearchIcon,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport {\n useAtom,\n useClientOutstandingReturnData,\n useSearchText,\n useStatsCPCount,\n} from '../store';\nimport { filtersReducerAtom } from '../order-daily-overview/header-filters/filterStore';\nimport { ApiResponse } from '../types';\nimport { javascriptStringDumpToJSON } from '../utils';\nimport { UsePaginationData } from '../order-daily-overview/store/store';\nimport { notification } from 'antd';\nimport { returnCountType } from './ReturnStatus';\nimport { dateFilterCPReducer } from './DateFilterStore';\n\nfunction ReturnSearchBar() {\n const [searchText, setSearchText] = useState('');\n const [debouncedSearchText, setDebouncedSearchText] = useSearchText();\n const [, setOutstandingData] = useClientOutstandingReturnData();\n const [, setPaginationObject] = UsePaginationData();\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchText(event.target.value);\n };\n const [state] = useAtom(dateFilterCPReducer);\n const { 'x-filters': filters } = state;\n const [statePagination] = useAtom(filtersReducerAtom);\n const [, setCount] = useStatsCPCount();\n const { 'x-pagination': pagination } = statePagination;\n\n const baseFilters = [\n { field: 'isdeleted', op: '=', value: 0 },\n { field: 'product_return_action_id', op: '=', value: 'RTS' },\n ];\n const cleanedFilters = filters.filter(f => f.field !== 'order_status');\n\n const modifiedFilters = [...baseFilters, ...cleanedFilters];\n const { paginationData, fetchData: getPendingData } = useAxios<ApiResponse>({\n endpoint: '/v1/return/product/pending/',\n method: 'GET',\n filters: modifiedFilters,\n pagination: pagination,\n });\n\n // Debouncing effect\n useEffect(() => {\n const trimmedText = debouncedSearchText?.trim() || '';\n\n if (trimmedText.length > 2) {\n getPendingData({\n endPointQuery: `?search_term=${trimmedText}`,\n }).then((response: any) => {\n if (paginationData) {\n const formattedPagination = javascriptStringDumpToJSON(\n paginationData\n );\n const { ...rest } = formattedPagination;\n setPaginationObject(rest);\n }\n\n if (response?.data?.length > 0) {\n setOutstandingData(response.data);\n } else {\n setOutstandingData([]);\n }\n });\n } else if (trimmedText.length > 0 && trimmedText.length <= 2) {\n notification.warning({\n message: 'Search phrase cannot be less than 2 characters',\n });\n }\n }, [debouncedSearchText, JSON.stringify(modifiedFilters)]);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedSearchText(searchText);\n }, 1000);\n return () => {\n clearTimeout(handler);\n };\n }, [searchText]);\n\n useEffect(() => {\n if (debouncedSearchText?.length === 0) {\n setSearchText('');\n }\n }, [debouncedSearchText]);\n //\n const { fetchData: fetchStatsData } = useAxios<{\n data: returnCountType[];\n }>({\n endpoint: `v1/portal/return/stats/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [...cleanedFilters],\n });\n\n useEffect(() => {\n const trimmedText = debouncedSearchText?.trim() || '';\n\n if (trimmedText.length > 2) {\n const fetchStats = async () => {\n const response = await fetchStatsData({\n endPointQuery: `?search_term=${trimmedText}&type=outstanding`,\n });\n //@ts-ignore\n if (response?.data) {\n //@ts-ignore\n setCount(response?.data);\n } else {\n setCount(null);\n }\n };\n\n fetchStats();\n } else if (trimmedText.length > 0 && trimmedText.length <= 2) {\n notification.warning({\n message: 'Search phrase cannot be less than 3 characters',\n });\n }\n }, [debouncedSearchText, JSON.stringify(modifiedFilters)]);\n\n const handleClear = () => {\n setSearchText('');\n };\n return (\n <Search>\n <SearchIcon />\n\n <SearchInput\n type=\"text\"\n placeholder=\"Search\"\n value={searchText}\n onChange={handleInputChange}\n />\n {searchText ? (\n <ClearButton className=\"clear\" onClick={handleClear}>\n <CrossIcon />\n </ClearButton>\n ) : null}\n </Search>\n );\n}\n\nconst ClearButton = styled.button`\n border: none;\n background: none;\n position: relative;\n border: none;\n cursor: pointer;\n padding: 0 4px;\n font-size: 0;\n &:hover {\n color: #000;\n }\n`;\n\nconst Search = styled.div`\n display: flex;\n padding: 4px 12px;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n border-radius: 20px;\n border: 1px solid var(--Neutral-Gray-Gray-100, #e0e2e7);\n background-color: var(--Flowkit-White, #fff);\n height: 35px;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n`;\nconst SearchInput = styled.input`\n border: none;\n outline: none;\n flex-grow: 1;\n width: 100%;\n background: transparent;\n`;\n\nexport default React.memo(ReturnSearchBar);\n","import {\n CrossIcon,\n SearchIcon,\n useAxios,\n} from '@bjsdistribution/dms-component-library';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport {\n useAtom,\n useClientPortal,\n useReturnConfirmedOrderData,\n useSearchAfterText,\n useStatsCPCount,\n} from '../store';\n\nimport { ApiResponse } from '../types';\nimport { javascriptStringDumpToJSON } from '../utils';\nimport { UsePaginationData } from '../order-daily-overview/store/store';\nimport { notification } from 'antd';\nimport { filtersReducerReturnAtom } from '../order-daily-overview/return-after-table/table-filters/ReturnFilterStore';\nimport { returnCountType } from './ReturnStatus';\nimport { useParams } from 'react-router-dom';\nimport { dateFilterCPReducer } from './DateFilterStore';\n\nfunction ReturnAfterSearchBar() {\n const [searchText, setSearchText] = useState('');\n const [debouncedSearchText, setDebouncedSearchText] = useSearchAfterText();\n const [, setReturnConfirmedData] = useReturnConfirmedOrderData();\n const [, setPaginationObject] = UsePaginationData();\n\n const [statePagination] = useAtom(filtersReducerReturnAtom);\n const { 'x-pagination': pagination } = statePagination;\n const [, setCount] = useStatsCPCount();\n const [clientPortal] = useClientPortal();\n const [state] = useAtom(dateFilterCPReducer);\n const { 'x-filters': filters } = state;\n const { status } = useParams();\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchText(event.target.value);\n };\n\n const { paginationData, fetchData: returnAfterCall } = useAxios<ApiResponse>({\n endpoint: '/v1/return/orders/',\n method: 'GET',\n filters: filters,\n pagination: pagination,\n });\n\n useEffect(() => {\n if (debouncedSearchText?.length > 2) {\n returnAfterCall({\n endPointQuery: `?search_term=${debouncedSearchText}`,\n }).then((response: any) => {\n if (paginationData) {\n const formattedPagination = javascriptStringDumpToJSON(\n paginationData\n );\n const { ...rest } = formattedPagination;\n setPaginationObject(rest);\n }\n if (response?.data) {\n setReturnConfirmedData(response?.data);\n } else {\n setReturnConfirmedData([]);\n }\n });\n } else if (\n debouncedSearchText?.length > 0 &&\n debouncedSearchText?.length <= 2\n ) {\n notification.warning({\n message: 'Search Phrase cannot be less than 3 characters',\n });\n }\n }, [debouncedSearchText, JSON.stringify(filters)]);\n\n // Debouncing effect\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedSearchText(searchText);\n }, 1000);\n return () => {\n clearTimeout(handler);\n };\n }, [searchText]);\n\n useEffect(() => {\n if (debouncedSearchText?.length === 0) {\n setSearchText('');\n }\n }, [debouncedSearchText]);\n const cleanedFilters = filters.filter(f => f.field !== 'order_status');\n\n const { fetchData: fetchStatsData } = useAxios<{\n data: returnCountType[];\n }>({\n endpoint: `v1/portal/return/stats/`,\n method: 'GET',\n pagination: { is_pagination: false },\n filters: [...cleanedFilters],\n });\n\n useEffect(() => {\n const validStatuses = ['scheduled_for_return', 'return_completed'];\n const isClientView = clientPortal && validStatuses.includes(status || '');\n\n if (!isClientView) return;\n\n const trimmedText = debouncedSearchText?.trim() || '';\n if (trimmedText.length > 0 && trimmedText.length <= 2) {\n notification.warning({\n message: 'Search phrase cannot be less than 2 characters',\n });\n return;\n }\n if (trimmedText.length === 0) return;\n const statusTypeMap: Record<string, string> = {\n scheduled_for_return: 'scheduled',\n return_completed: 'complete',\n };\n\n const type = statusTypeMap[status as keyof typeof statusTypeMap];\n\n fetchStatsData({\n endPointQuery: `?search_term=${trimmedText}&type=${type}`,\n })\n .then((response: any) => {\n if (response?.data) {\n console.log('inside response', response);\n setCount(response.data);\n } else {\n setCount(null);\n }\n })\n .catch((error: any) => {\n console.error('Error fetching stats:', error);\n setCount(null);\n });\n }, [debouncedSearchText, status]);\n\n const handleClear = () => {\n setSearchText('');\n };\n return (\n <Search>\n <SearchIcon />\n\n <SearchInput\n type=\"text\"\n placeholder=\"Search\"\n value={searchText}\n onChange={handleInputChange}\n />\n {searchText ? (\n <ClearButton className=\"clear\" onClick={handleClear}>\n <CrossIcon />\n </ClearButton>\n ) : null}\n </Search>\n );\n}\n\nconst ClearButton = styled.button`\n border: none;\n background: none;\n position: relative;\n border: none;\n cursor: pointer;\n padding: 0 4px;\n font-size: 0;\n &:hover {\n color: #000;\n }\n`;\n\nconst Search = styled.div`\n display: flex;\n padding: 4px 12px;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n border-radius: 20px;\n border: 1px solid var(--Neutral-Gray-Gray-100, #e0e2e7);\n background-color: var(--Flowkit-White, #fff);\n height: 35px;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n`;\nconst SearchInput = styled.input`\n border: none;\n outline: none;\n flex-grow: 1;\n width: 100%;\n background: transparent;\n`;\n\nexport default React.memo(ReturnAfterSearchBar);\n","import React, { useEffect } from 'react';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport { HeaderWrapper, StyledFlex } from './RouterHeaderStyle';\nimport HeaderTitle from './title/HeaderTitle';\nimport Breadcrumb from './breadCrumb/BreadCrumb';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport { DatePicker, DatePickerProps } from 'antd';\nimport {\n useAtom,\n useClientPortal,\n useEndDate,\n useStartDate,\n} from '../../../store';\nimport ReturnSearchBar from '../../../client-portal/ReturnSearchBar';\nimport { useParams } from 'react-router-dom';\nimport ReturnAfterSearchBar from '../../../client-portal/ReturnAfterSearchBar';\nimport { dateFilterCPReducer } from '../../../client-portal/DateFilterStore';\n\ninterface RouterHeaderProps {\n breadcrumbTitle?: string;\n breadcrumbSubtitle?: string;\n breadcrumbSubPart?: string;\n showDateFilter?: boolean;\n}\n\nconst ClientRouterHeader: React.FC<RouterHeaderProps> = ({\n breadcrumbTitle = 'Clients >', // Default value\n breadcrumbSubtitle = ' Return', // Default value\n breadcrumbSubPart, // Optional\n}) => {\n const [clientPortal] = useClientPortal();\n const monthDateRange = localStorage.getItem('completed_return_date_range');\n const parsedDateRange =\n monthDateRange != null ? JSON.parse(monthDateRange) : undefined;\n const [, dispatch] = useAtom(dateFilterCPReducer);\n //CP\n const [startDate, setStartDate] = useStartDate();\n const [endDate, setEndDate] = useEndDate();\n const { status } = useParams();\n\n useEffect(() => {\n if (!clientPortal) return;\n\n const isReturnCompleted = status === 'return_completed';\n const hasNoDate = !startDate && !endDate;\n\n // if (isReturnCompleted && hasNoDate) {\n // const today = dayjs();\n\n // setStartDate(today);\n // setEndDate(today);\n\n // return;\n // }\n\n const formattedStart = startDate?.format('YYYY-MM-DD');\n const formattedEnd = endDate?.format('YYYY-MM-DD') ?? null;\n\n if (hasNoDate && !isReturnCompleted) {\n dispatch({ type: 'CLEAR_CP_DATE_FILTER' });\n return;\n }\n\n if (formattedStart || formattedEnd) {\n dispatch({\n type: 'SET_CP_DATE_FILTER',\n payload: {\n startDate: formattedStart,\n endDate: formattedEnd,\n status,\n },\n });\n }\n }, [clientPortal, status, startDate, endDate]);\n\n useEffect(() => {\n if (parsedDateRange != undefined) {\n const formattedStart = dayjs(parsedDateRange[0])?.format('YYYY-MM-DD');\n const formattedEnd =\n dayjs(parsedDateRange[1])?.format('YYYY-MM-DD') ?? null;\n setStartDate(dayjs(formattedStart));\n setEndDate(dayjs(formattedEnd));\n }\n\n return () => {\n // Cleanup on unmount\n setStartDate(null);\n setEndDate(null);\n localStorage.removeItem('completed_return_date_range');\n };\n }, [clientPortal]);\n\n const handleStartDateChange: DatePickerProps['onChange'] = date => {\n if (!date) {\n setStartDate(null);\n setEndDate(null);\n dispatch({\n type: 'CLEAR_CP_DATE_FILTER',\n });\n } else {\n setStartDate(date);\n }\n };\n\n const handleEndDateChange: DatePickerProps['onChange'] = date => {\n setEndDate(date);\n };\n\n const validStatuses = [\n 'outstanding_return',\n 'scheduled_for_return',\n 'return_completed',\n ];\n\n return (\n <>\n <HeaderWrapper className=\"headerWrap\">\n <StyledFlex>\n <div>\n <HeaderTitle title={'Return'} />\n <Breadcrumb\n title={breadcrumbTitle}\n subtitle={breadcrumbSubtitle}\n subPart={breadcrumbSubPart}\n />\n </div>\n </StyledFlex>\n\n {clientPortal && status === 'outstanding_return' && <ReturnSearchBar />}\n\n {clientPortal &&\n (status === 'scheduled_for_return' ||\n status === 'return_completed') && <ReturnAfterSearchBar />}\n\n {clientPortal &&\n typeof status === 'string' &&\n validStatuses.includes(status) && (\n <DatePickerWrap>\n <DatePicker\n value={startDate ? dayjs(startDate) : null}\n onChange={handleStartDateChange}\n format={'MMMM D, YYYY'}\n allowClear\n // disabledDate={current =>\n // !!endDate && current.isAfter(dayjs(endDate), 'day')\n // }\n />\n <DatePicker\n value={endDate ? dayjs(endDate) : null}\n onChange={handleEndDateChange}\n format={'MMMM D, YYYY'}\n disabledDate={current =>\n !!startDate && current.isBefore(dayjs(startDate), 'day')\n }\n />\n </DatePickerWrap>\n )}\n </HeaderWrapper>\n </>\n );\n};\nexport const DatePickerWrap = styled.div`\n display: flex;\n padding-right: 10px;\n padding-left: 7px;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n border-radius: 20px;\n border: 1px solid #e0e2e7;\n background: #fff;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n min-width: 22vw;\n height: 35px;\n input[type='text'] {\n border-radius: 20px;\n background: var(--Flowkit-White, #fff);\n border: none;\n color: #6a7378;\n font-size: 13px;\n font-weight: 400;\n line-height: 18px;\n padding: 8px 0;\n padding-left: 10px;\n &:focus-visible {\n outline: none;\n }\n }\n\n .ant-picker-outlined {\n border-style: none !important;\n }\n\n .ant-picker-focused {\n box-shadow: none;\n }\n\n /* .ant-picker {\n .ant-picker-input {\n width: 150px;\n }\n } */\n .ant-btn {\n background-color: #3348ff !important;\n }\n`;\nexport default ClientRouterHeader;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport HeaderFilter from '../order-daily-overview/header-filters/HeaderFilter';\nimport styled from 'styled-components';\nimport ReturnFilter from '../order-daily-overview/return-order-table/return-orders-filters/ReturnFilter';\nimport Pagination from '../order-daily-overview/table-view/Pagination';\nimport {\n useItemsPerPage,\n useLoading,\n UsePaginationData,\n UsePaginationReturnData,\n} from '../order-daily-overview/store/store';\nimport {\n useAtom,\n useClientPortal,\n useReturnConfirmedOrderData,\n useSearchAfterText,\n} from '../store';\nimport { useParams } from 'react-router-dom';\nimport OutstandingTable from './OutstandingTable';\nimport ConfirmedMain from './return-confirm/ConfirmedMain';\nimport ClientRouterHeader from '../order-daily-overview/header/route-header/ClientRouterHeader';\nimport { filtersReducerReturnAtom } from '../order-daily-overview/return-after-table/table-filters/ReturnFilterStore';\nimport { dateFilterCPReducer } from './DateFilterStore';\nimport { useAxios } from '@bjsdistribution/dms-component-library';\nimport { notification } from 'antd';\nimport { ApiResponse } from '../types';\n\nconst ReturnOverview = () => {\n const [paginationObj] = UsePaginationData();\n const [, setCurrentPage] = useState(1);\n const [itemsPerPage, setItemsPerPage] = useItemsPerPage();\n const { page, total } = paginationObj;\n const { status } = useParams();\n const [clientPortal] = useClientPortal();\n const [debouncedSearchText] = useSearchAfterText();\n const [, setReturnPaginationObject] = UsePaginationReturnData();\n const [\n returnConfirmedData,\n setReturnConfirmedData,\n ] = useReturnConfirmedOrderData();\n const [statePagination] = useAtom(filtersReducerReturnAtom);\n const [, setLoading] = useLoading();\n const { 'x-pagination': pagination } = statePagination;\n const [state] = useAtom(dateFilterCPReducer);\n const { 'x-filters': filters } = state;\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n };\n const handleItemsPerPageChange = (itemsPerPage: number) => {\n setItemsPerPage(itemsPerPage);\n };\n\n const shouldShowReturnAfterTable =\n (clientPortal && status === 'scheduled_for_return') ||\n (clientPortal && status === 'return_completed');\n\n const validStatuses = [\n 'outstanding_return',\n 'scheduled_for_return',\n 'return_completed',\n ];\n\n const {\n data: fetchedReturnOrderData,\n loading,\n paginationData,\n fetchData,\n } = useAxios<ApiResponse>({\n endpoint: '/v1/return/orders/',\n method: 'GET',\n filters: filters,\n pagination: pagination,\n });\n\n useEffect(() => {\n if (clientPortal && debouncedSearchText === '') {\n fetchData();\n }\n }, [JSON.stringify(filters), debouncedSearchText, pagination]);\n\n useEffect(() => {\n setLoading(loading);\n\n if (fetchedReturnOrderData?.data) {\n setReturnConfirmedData(fetchedReturnOrderData?.data);\n if (paginationData) {\n try {\n const { count, ...rest } = JSON.parse(paginationData);\n setReturnPaginationObject(rest);\n } catch (error) {\n notification.error({\n message: 'Error',\n description: 'Failed to parse pagination data',\n });\n }\n }\n }\n }, [fetchedReturnOrderData, loading]);\n\n const url =\n process.env.REACT_APP_API_PATH ||\n 'https://development.dmsbackend.bjshomedelivery.com';\n\n const payload = useMemo(\n () => ({\n file_type: 'import_manifest',\n url: `${url}/v1/return/orders/`,\n reference: 'overview_retuen_orders',\n feature_name: 'client portal',\n x_filter: JSON.stringify([filters?.length > 0 ? filters : undefined]),\n }),\n [pagination]\n );\n\n return (\n <>\n {clientPortal &&\n typeof status === 'string' &&\n validStatuses.includes(status) && <ClientRouterHeader />}\n <div>\n <DashBoardWrapper>\n <div className=\"Tableconatiner\">\n <HeaderFilter />\n <Container>\n <ReturnFilter data={returnConfirmedData} payload={payload} />\n {clientPortal && status === 'outstanding_return' && (\n <>\n <OutstandingTable />\n {total > 0 && (\n <Pagination\n currentPage={page}\n totalItems={total}\n itemsPerPage={itemsPerPage}\n onPageChange={handlePageChange}\n onItemsPerPageChange={handleItemsPerPageChange}\n ></Pagination>\n )}\n </>\n )}\n {shouldShowReturnAfterTable && (\n <>\n <ConfirmedMain />\n </>\n )}\n </Container>\n </div>\n </DashBoardWrapper>\n </div>\n </>\n );\n};\nconst Container = styled.div`\n position: relative;\n top: -16px;\n`;\n\nconst DashBoardWrapper = styled.section`\n .Tableconatiner {\n border-radius: 12px;\n background: #fff;\n box-shadow: -2px 0px 12px 0px rgba(56, 71, 109, 0.1);\n display: block;\n padding: 15px 20px;\n }\n .headerWrap,\n .tableData,\n .styleCovered {\n transition: all ease 0.5s;\n }\n &.stickyTableHead {\n h2 {\n font-size: 21px;\n }\n .headerWrap {\n height: 84px;\n padding: 10px;\n border-radius: 0px 0px 15px 15px;\n > div {\n position: relative;\n z-index: 10;\n }\n }\n .styleCovered {\n margin-top: -32px;\n width: 67%;\n float: right;\n gap: 5px;\n padding-right: 11px;\n\n li {\n padding: 4px 10px 5px 5px;\n gap: 5px;\n .svgCover {\n width: 30px;\n height: 30px;\n svg {\n height: auto;\n width: 58%;\n }\n }\n .countDigit {\n font-size: 19px;\n }\n }\n .countMess {\n font-size: 13px;\n }\n }\n .dmsBulkFilter {\n min-height: unset;\n gap: 4px;\n > div {\n padding: 4px 12px;\n label {\n font-size: 11px;\n }\n }\n }\n\n .StyledFilterList {\n gap: 4px;\n li {\n height: 29px;\n padding: 3px 8px;\n gap: 4px;\n .StyledFilterBtnIcon {\n width: 20px;\n height: 20px;\n svh {\n width: 10px;\n height: auto;\n }\n }\n .StyledFilterBtnLabel {\n font-size: 13px;\n }\n }\n }\n .StyledFilterLabel {\n padding-left: 10px;\n span {\n font-size: 13px;\n }\n }\n .cardcontainer.tableData {\n max-height: calc(100vh - 310px);\n min-height: calc(100vh - 310px);\n }\n\n .tableData {\n max-height: calc(100vh - 320px);\n min-height: calc(100vh - 320px);\n\n margin-top: 8px;\n thead {\n position: sticky;\n top: 0;\n z-index: 9;\n th {\n font-size: 13px;\n padding: 2px 15px;\n }\n }\n }\n }\n`;\nexport default ReturnOverview;\n","import React from 'react';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport { HeaderWrapper, StyledFlex } from './RouterHeaderStyle';\nimport HeaderTitle from './title/HeaderTitle';\nimport Breadcrumb from './breadCrumb/BreadCrumb';\nimport styled from 'styled-components';\n\ninterface RouterHeaderProps {\n breadcrumbTitle?: string;\n breadcrumbSubtitle?: string;\n breadcrumbSubPart?: string;\n showDateFilter?: boolean;\n}\n\nconst RouterHeader: React.FC<RouterHeaderProps> = ({\n breadcrumbTitle = 'Clients >', // Default value\n breadcrumbSubtitle = ' Return', // Default value\n breadcrumbSubPart, // Optional\n}) => {\n return (\n <>\n <HeaderWrapper className=\"headerWrap\">\n <StyledFlex>\n <div>\n <HeaderTitle title={'Return'} />\n <Breadcrumb\n title={breadcrumbTitle}\n subtitle={breadcrumbSubtitle}\n subPart={breadcrumbSubPart}\n />\n </div>\n </StyledFlex>\n </HeaderWrapper>\n </>\n );\n};\nexport const DatePickerWrap = styled.div`\n display: flex;\n padding-right: 10px;\n padding-left: 7px;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n border-radius: 20px;\n border: 1px solid #e0e2e7;\n background: #fff;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n min-width: 22vw;\n height: 35px;\n input[type='text'] {\n border-radius: 20px;\n background: var(--Flowkit-White, #fff);\n border: none;\n color: #6a7378;\n font-size: 13px;\n font-weight: 400;\n line-height: 18px;\n padding: 8px 0;\n padding-left: 10px;\n &:focus-visible {\n outline: none;\n }\n }\n\n .ant-picker-outlined {\n border-style: none !important;\n }\n\n .ant-picker-focused {\n box-shadow: none;\n }\n\n /* .ant-picker {\n .ant-picker-input {\n width: 150px;\n }\n } */\n .ant-btn {\n background-color: #3348ff !important;\n }\n`;\nexport default RouterHeader;\n","import React, { Suspense, useEffect } from 'react';\nimport {\n Navigate,\n Route,\n Routes,\n useLocation,\n useSearchParams,\n} from 'react-router-dom';\nimport ReturnTable from './components/order-daily-overview/return-order-table/ReturnTable';\nimport ReturnAfterTable from './components/order-daily-overview/return-after-table/ReturnAfterTable';\nimport {\n useSelectedAction,\n useSelectedClient,\n useSelectedLocation,\n} from './components/order-daily-overview/store/store';\nimport { notification } from 'antd';\n// import RouterHeader from './components/order-daily-overview/header/route-header/RouterHeader';\nimport {\n useActionType,\n useActionTypeOptions,\n useAssignData,\n useClientLoading,\n useClientPortal,\n useLocationData,\n useStatusOrderData,\n useVisibilityData,\n} from './components/store';\nimport { ApiResponse } from './components/types';\nimport { useApiHook } from '@bjsdistribution/dms-component-library';\nimport {\n useLocationOptions,\n useOrderStaticData,\n} from './components/order-view/store';\nimport OrderViewQueryHandler from './OrderViewQueryHandler';\nimport OrderView from './components/order-view';\nimport ReturnOverview from './components/client-portal/ReturnOverview';\nimport RouterHeader from './components/order-daily-overview/header/route-header/RouterHeader';\nimport ClientRouterHeader from './components/order-daily-overview/header/route-header/ClientRouterHeader';\nfunction ReturnClient() {\n notification.config({\n top: 80,\n });\n const LoadingMessage = () => <div>Loading...</div>;\n const [, setActionType] = useActionType();\n const [, setLocationData] = useLocationData();\n const [, setStatusOfOrders] = useStatusOrderData();\n const [, setAssignData] = useAssignData();\n const [, setActionTypeOptions] = useActionTypeOptions();\n const [, setLocationOptions] = useLocationOptions();\n const [, setSelectedFilterValue] = useSelectedAction();\n const [, setSelectedClient] = useSelectedClient();\n const [searchParams] = useSearchParams();\n const [, setSelectedLocationValue] = useSelectedLocation();\n const [, setVisibilityData] = useVisibilityData();\n const [, setOrderStaticData] = useOrderStaticData();\n const [clientPortal, setClientPortal] = useClientPortal();\n const location = useLocation();\n const userType = JSON.parse(localStorage.getItem('user_type') ?? 'null');\n const [, setLoading] = useClientLoading();\n useEffect(() => {\n setClientPortal(userType?.is_customer ? true : false); // change it to false bydefault\n setLoading(false);\n }, []);\n\n const splitPath = (str: any) => {\n const parts = str?.split('/')?.filter((part: any) => part !== ''); // Filter out empty parts\n return parts;\n };\n const paths = splitPath(location.pathname);\n\n useEffect(() => {\n if (paths.join('/') === 'orders/view/return') {\n setActionTypeOptions([]);\n setLocationOptions([]);\n setSelectedClient(null);\n setSelectedFilterValue(null);\n setSelectedLocationValue(null);\n }\n }, [location.pathname, searchParams]);\n\n //API for action type\n const { data: fetchedStaticData, loading: staticLoading } = useApiHook<\n ApiResponse\n >({\n endpoint: `/orders/getStaticData/all/`,\n method: 'GET',\n });\n //API for return locations\n const { data: fetchedLocationData, loading: locationloading } = useApiHook<\n ApiResponse\n >({\n endpoint: `/return_locations/`,\n method: 'GET',\n //@ts-ignore\n pagination: { is_pagination: false },\n });\n\n useEffect(() => {\n if (fetchedStaticData && fetchedStaticData?.data) {\n const result = fetchedStaticData?.data;\n setOrderStaticData(result[0]);\n setVisibilityData(\n fetchedStaticData?.data?.flatMap(\n (i: any) => i?.resource_visibility_type\n )\n );\n\n setActionType(\n fetchedStaticData?.data?.flatMap(\n (i: any) => i?.order_product_return_action\n )\n );\n\n //for status of return orders key changes\n setStatusOfOrders(\n fetchedStaticData?.data?.flatMap((i: any) => i?.return_order_status)\n );\n setAssignData(\n fetchedStaticData?.data?.flatMap((i: any) => i?.assign_client)\n );\n }\n }, [staticLoading]);\n useEffect(() => {\n if (fetchedLocationData && fetchedLocationData?.data) {\n setLocationData(fetchedLocationData?.data);\n }\n }, [locationloading]);\n\n const pathname = location.pathname;\n const isViewPath = /^\\/return\\/view\\/\\d+$/.test(pathname);\n\n return (\n <>\n {clientPortal && isViewPath && <ClientRouterHeader />}{' '}\n {!clientPortal && <RouterHeader />}\n <Suspense fallback={<LoadingMessage />}>\n {clientPortal ? (\n <Routes>\n <Route path=\"\" element={<Navigate to={'return_completed'} />} />\n <Route path=\":status\" element={<ReturnOverview />} />\n <Route\n path=\"view/:id\"\n element={<OrderView locationloading={locationloading} />}\n />\n </Routes>\n ) : (\n <Routes>\n {/* for local */}\n {/* <Route\n path=\"/orders/view/return/*\"\n element={<OrderViewQueryHandler />}\n /> */}\n {/* for dev */}\n <Route path=\"\" element={<OrderViewQueryHandler />} />\n <Route path=\"overview\" element={<ReturnAfterTable />} />\n <Route\n path=\"/:id\"\n element={<OrderView locationloading={locationloading} />}\n />\n {/* for local */}\n {/* <Route path=\"/orders/view/return/filter\" element={<ReturnTable />} /> */}\n {/* for dev */}\n <Route path=\"filter\" element={<ReturnTable />} />\n </Routes>\n )}\n </Suspense>\n </>\n );\n}\nexport default ReturnClient;\n"],"names":["CoverPage","styled","div","_templateObject3","_taggedTemplateLiteralLoose","Wrapper","_templateObject5","Label","_templateObject7","FilterRow","_templateObject8","FilterColumn","_templateObject9","RightColumn","_templateObject10","LeftColumn","_templateObject11","ApplyButton","button","_templateObject14","CreateReturnInitial","customer_id","account_number","return_location_token","products","return_action","AssignUpdateInitial","return_order_id","bjs_delivery","reminderTableData","atom","customerData","flatCustomerData","actionTypeData","locationData","createReturnPayload","newPayload","grpPayload","statusOfOrder","selectedLocationConfirm","selectAll","postLoading","final","clearState","assignData","visibilityData","assignPayload","callAPIAgain","actionTypeOptions","selectedProductsMove","newReturnOrderData","subContracterData","useSubContracterData","useAtom","selectedOrderlList","useSelectedOrders","selectedCPOrderlList","selectedCPOrderAfterlList","useSelectedClientAfterOrders","startCPDate","endCPDate","stickyStatus","search","useSearchText","searchAfter","useSearchAfterText","isShow","useIsShowNorthSouth","rclientReturnDataAtom","useClientOutstandingReturnData","returnConfirmedOrderAtom","useReturnConfirmedOrderData","statsCPCount","useStatsCPCount","useCustomerData","useFlatCustomerData","useLocationData","useReturnPayload","useNewReturnPayload","useGroupedPayload","useStatusOrderData","useSelectedConfirmLoc","useSelectAll","usePostLoading","useFinalPayload","useClearState","useAssignData","useVisibilityData","useAssignPayload","useCallApiAgain","useActionTypeOptions","useSelectedProducts","selectedAssignee","useSelectedData","useNewReturnOrderData","isClientPortalAtom","undefined","useClientPortal","isClientLoading","useClientLoading","sendEmailNotificationData","filtersStateAtom","x-filters","field","op","value","x-pagination","page","per_page","filtersReducerAtom","get","set","action","state","type","_extends","concat","filter","f","format","Date","payload","Array","isArray","filterReducer","PrintOptionTOggle","usePrintOptionTOggle","loading","useStatsLoading","loadingState","useLoading","selectedAction","useSelectedAction","selectedLocation","useSelectedLocation","selectedClient","useSelectedClient","atomPaginationData","firstPage","lastPage","next_page","previous_page","total","totalPages","UsePaginationData","atomItemsPerPage","useItemsPerPage","UsePaginationReturnData","atomItemsPerReturnPage","useItemsPerReturnPage","UsePaginationOverviewData","atomItemsPerOverviewPage","activeTabAtom","infoAtom","currentActionAtom","orderStaticDataAtom","customerInfoAtom","recipient_name","postcode","ordersInitialValue","order_locked_time","depot_id","gsit_order_id","trading_name","recipient_reference","order_locked","lock_notes","order_type_id","allow_live_tracking","weight","cube","rescheduled","zone_code","status","status_value","order_status_note","print_pod","order_number","consignment","action_date","other_instructions","schedule_after","vehicle_type","order_locked_by","delivery_instructions","drop_time","created_by","created_at","order_recipient","id","order_id","address","postcode_district","postcode_short","latitude","longitude","what_3words_address","contact_home","contact_work","contact_mobile","contact_email","is_comms_enabled","order_services_detail","timed_service_id","order_delivery_point_id","order_service_level_id","heavy_order","heavy_item","bulky_order","bulky_item","order_services","order_service_list_id","service_time","is_refused","service_note","service_category_id","order_routes","order_eta_updates","order_delivery_declined_dates","order_communications","name","carrier_id","order_type","assemble","disassemble","unpack_items","take_packaging_away","collect_disposal","assembly_type","route_id","hold_untill","hold_reason","order_on_hold","hold_indefinitely","hold_until","reason_id","un_hold","refused_service","refused_service_reason","invalid_order","owner_name","force_debrief_enabled","import_reference","labels","chargesIntialValue","base_charge_type","base_charge","timed_service","wait_time","extra_floor","bulky_items","re_label","extra_cube","additional_box","additional_item","weekend","re_allocation","pre_dated","re_package","qc","collection_qc","return_to_client","roc","unpack","packaging_disposal","assembly","debrief_notes","recycle","admin","disposal","disposal_recycling","debrief_status","new_order_status","adhoc_charges","useTabType","useCurrentAction","useOrderStaticData","useCustomerInfo","orderId","useOrderId","errorConfirmOrderAtom","homeContactError","workContactError","mobileError","emailError","useErrorConfirmOrder","OrderDetailsConfirmOrder","useOrderDetailsConfirmOrder","useSelectionAction","confirmedDate","previousDate","currentDate","useNotificationConfirmedDate","cancelOrderProducts","useCancelOrderProducts","orderAlertsData","useOrderAlertsData","customerList","OrderDetails","useOrderDetails","prevOrderDetails","usePrevOrderDetails","customerDetails","useCustomerDetails","productDetails","useProductDetails","fetchAgain","usefetchAgain","productDetailsCopy","StatusDeatils","useStatusDetails","depotOptions","useDepotOptions","deleteProdId","errorAtom","workCOntanctError","w3wError","postCodeError","orderProductResources","useOrderProductsResources","locationOptions","useLocationOptions","orderProductSystemLogs","useOrderProductSystemLogs","returnAfterOrderAtom","useReturnAfterOrderData","clientDataAtom","useClientData","clientData","usegetClientData","internalSearch","useInternalSearchText","notes","usegetNotes","moduleIds","usemoduleIds","gsitCUstomerId","CUstomerId","RouteId","useRouteId","gsitOrderId","useGsitOrderId","orderProductId","returnDataAtom","useReturnData","liveRecalling","useLiveRecalling","auditLogLoadingState","useAuditLogLoadingState","globalStateHitAuditLog","useGlobalStateHitAuditLog","globalOrderGetApi","useGlobalStateHitOrder","globalEscData","useGlobalEscData","activeTab","useActiveTab","chargesStateAtom","useChargesState","failureReasonAtom","useFailureReason","escalationCategoryAtom","useEscalationCategory","escalationLevelAtom","useEscalationLevel","escalationReasonAtom","useEscalationReason","newStatusAtom","useNewStatus","orderCancelReasonAtom","useOrderCancelReason","orderHoldReasonAtom","useOrderHoldReason","isFailureReasonChangedAtom","useIsFailureReasonChanged","countReducerAtom","atomWithReducer","Error","SelectionFilter","customers","_useSelectedAction","selectedFilterValue","setSelectedFilterValue","dispatch","_useSelectedLocation","selectedLocationValue","setSelectedLocationValue","_useSelectedClient","setSelectedClient","_useState","useState","isButtonEnabled","setIsButtonEnabled","setReturnPayload","load","_useClearState","setClear","_useActionTypeOptions","setActionTypeOptions","_useLocationOptions","setLocationOptions","searchParams","useSearchParams","navigate","useNavigate","clientPortal","clientLoading","_useAxios","useAxios","endpoint","method","pagination","is_pagination","fetchedCustomerData","data","fetchData","_useFlatCustomerData","flatCustomers","setFlatCustomers","useEffect","length","urlCustomerId","urlActiontype","selectedFlatCustomer","find","customer","_customer$customer_id","toString","accountNumber","selectedGroupedCustomer","_customer$customer_id2","getFilterPayload","_selectedGroupedCusto2","children","_selectedGroupedCusto","map","child","_child$customer_id","clientOptions","v","i","a","findIndex","t","_t$customer_id","_v$customer_id","option","String","customer_name","trading_as","label","_name$charAt","charAt","toUpperCase","slice","Number","actions","return_locations","prevState","filteredClient","client","_filteredClient$actio2","mappedActions","mappedLocations","location","location_name","token","pathname","window","href","React","StyledAntSelect","options","placeholder","onChange","_filteredClient$actio","style","minWidth","allowClear","onClear","filterOption","input","_option$label","toLowerCase","includes","showSearch","URLSearchParams","replace","mode","onClick","queryParams","customerId","currentSearch","console","log","selectedClientValue","clientActions","clientLocations","disabled","Select","_templateObject","HeaderFilter","_useClientPortal","LeftSideConatiner","StyledFiter","_templateObject4","StyledFIlterELements","Text","StyledTableFilter","RightFilters","selectedReturnOrder","returnData","_useAtom2","moduleInfo","isExportedData","moduleName","file_type","apiUrlEndPoint","reference","feature_name","Container","ButtonText","ExportButton","moduleInfoModule","_templateObject2","overviewfiltersStateAtom","dateFilterCPReducer","_action$payload","startDate","endDate","fieldName","filters","push","nextDay","dayjs","add","updatedFilters","overviewFilterReducer","ReturnRTFilters","_ref","outstandingReturnData","returnConfirmedData","_useSelectedClientAft","selectedOrderIds","setSelectedOrderIds","useParams","spinLoading","setSpinLoading","callExportCSV","downloadFile","callExportApi","handleExport","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_response$data4","currentIds","finalPayload","response","_response$data5","wrap","_context","prev","next","error","abrupt","order_ids","sent","url","notification","success","message","description","open","info","t0","finish","warning","stop","apply","arguments","StyledBulkFilterCover","className","ExportCSVButton","_moduleInfo2","_moduleInfo3","_moduleInfo4","_moduleInfo5","_moduleInfo6","process","env","REACT_APP_API_PATH","_moduleInfo","then","res","setTimeout","endPointQuery","_response$data","file_reference","_response$data3","_response$data2","err","Spin","spinning","StyledBulkItem","props","ReturnFilter","_useStatsCPCount","count","setCount","debouncedSearchAfterText","debouncedSearchText","cleanedFilters","selectedCustomer","customerName","statsData","statsApiLoading","JSON","stringify","char","getStatusLabel","completed_count","DownIcon","xmlns","width","height","viewBox","fill","opacity","fillRule","clipRule","d","PrinterIcon","CaretDownFilledIcon","SortIcon","PrintIconMap","runSheet","loadSheet","deliveryLables","clipPath","customerLables","collectionLables","formatDate","date","padZero","num","padStart","year","getFullYear","month","getMonth","getDate","displayValueOrNA","isBlankArray","basedEnv","getProjectEnv","POSTCODE_LABEL","WEIGHT_UNIT","optionsPrint","icon","optionsClientPortPrint","PrintDropDownReturn","legacyURL","legacyProductID","downloadFiles","OptionsList","item","index","IconComponent","isDisabled","OptionsListLi","key","ul","li","_ref3","_ref4","_ref5","ColumStyle","GreyBox","StyledTableWrapper","StyledTable","table","EmptyDataContainer","_templateObject34","ClearAll","_templateObject35","StyledFilterBtnIcon","_templateObject36","StyledFilterBtnLabel","_templateObject37","_templateObject18","_templateObject19","_templateObject20","CustomDrop","_templateObject21","SELECTABLE_ACTIONS","isSelectableItem","product_return_action","return_location","ReturnOrderTable","_useSelectedOrders","setSelectedReturnOrder","_useSelectAll","setSelectAll","_useReturnData","setReturnData","_useLoading","setLoading","dropdownRefParent","useRef","dropdownRef","_usePrintOptionTOggle","printToogle","setPrintToggle","_useNewReturnPayload","newpayload","setNewPayload","setGrouped","setPaginationObject","callForFetch","sortConfig","setSortConfig","handleSort","direction","sortedData","useMemo","sort","b","valueA","valueB","localeCompare","renderSortIcon","columnKey","document","addEventListener","handleClickOutside","removeEventListener","event","current","contains","target","_useApiHook","useApiHook","performAction","showLoader","fetchedOrderData","returnDataLoad","paginationData","setShouldPerformAction","rest","_objectWithoutPropertiesLoose","parse","_excluded","updatedReturnData","returnItem","matchingLocation","new_location","groupedPayload","reduce","acc","from","Set","mergedPayload","Object","values","some","Checkbox","checked","e","isChecked","_selectedReturnOrder$","firstSelectable","loc","targetAction","filteredData","selectedOrders","return_location_name","legacy_product_id","colSpan","Skeleton","active","Empty","_item$client_name","_selectedReturnOrder$2","Tooltip","title","selectedInvoice","prevSelectedLocations","_returnData$filter","updatedSelectedLocations","prevPayload","totalItemsOfAction","_returnData$filter2","newReturnPayload","client_name","listStyleType","padding","color","fontWeight","paddingLeft","NavLink","to","code","part","return_reason","collected_at","collection_reason","ref","prevIndex","OpenDropDown","return_order_product_label","capitalize","getBaseUrlSymbol","handleKeyDownDebrief","preventDefault","DefectsData","primary_position","secondary_position","tertiary_position","primary_details","secondary_details","images","handleKeyDown","ctrlKey","metaKey","currentTarget","selectionStart","findDifference","obj1","obj2","sourceObj","newObj","diffKeys","keys","forEach","filterObject","obj","keysToRemove","isObjectEmpty","objectName","compareOrderDetailsStates","oldData","newData","oldOrderRecipient","oldOrderRoutes","oldOrderServicesDetail","oldRequiredData","newOrderRecipient","newOrderRoutes","newOrderServicesDetail","newRequiredData","_excluded2","payloadWithId","payloadOrderRecipient","payloadOrderRoutes","payloadOrderServicesDetail","sanitizeInput","trim","DefectsModal","GLobalPopupContent","StyledConatiner","AntTable","columns","selectOptions","onSelectChange","record","CreateReturnModal","_useSelectedConfirmLo","selectedlocation","setSelectedLocations","setNew","uniqueLocations","matchedItems","Alert","onClose","showOkButton","listStyle","returnLoc","marginBottom","display","alignItems","selectedId","StyledText","marginLeft","ModalManager","_useAtom","popupName","hasStartedLoading","setHasStartedLoading","selectedRows","setIsFormValid","newGrouped","_usePostLoading","SetPostLoading","forDisabledCheck","setCheck","setCallForFetch","_useSendEmailNotifica","sendEmailNotification","setSendEmailNotification","closeModal","body","confirmLoading","apiError","setError","callSendEmail","orderIdsString","emailApiPayload","gsit_order_ids","_item$order_id","AntModal","openStatus","PopupHeader","heading","subHeading","PopupFooter","btns","marginRight","gap","stopPropagation","fontFamily","fontSize","textTransform","btnStyle","btnAlign","BodyComponent","classNameAdd","StyledContainer","StyledContentWrapper","StyledInfoBox","StyledLabel","StyledPaginationWrapper","_templateObject6","StyledPaginationItem","PrevIcon","NextIcon","PAGE_SIZE_OPTIONS","Pagination","currentPage","totalItems","itemsPerPage","onPageChange","onItemsPerPageChange","Math","ceil","startItem","endItem","min","handlePageChange","newItemsPerPage","Option","pageNumbers","MAX_PAGES_TO_SHOW","startPage","max","endPage","getPageNumbers","pageNumber","ReturnTable","paginationObj","setCurrentPage","_useItemsPerPage","setItemsPerPage","DashBoardWrapper","DocumentTitle","section","PrintDropDown","legacyProductId","printOptions","OrderTable","setOrderId","returnAfterOrder","_useAssignPayload","setAssignPayload","setAssign","setCallAPi","_useState2","actionResponse","setAssignAction","assignOptions","_option$type","_option$type2","detail","_apiError$detail$","msg","cancelled","on hold","SC","awaiting route","awaiting confirmation","complete","outstanding","routed","failed","statusClass","background","getStatusClass","_item$locations","locations","join","total_products","total_orders","Id","handleAssignPayload","filtersReducerReturnAtom","TableFilters","FilterIcon","stroke","transform","DateIcon","ClientIcon","StatusIcon","AssigneIcon","ReturnOrderFilter","selectedDate","setSelectedDate","_useState3","statusOrder","setStatusOfOrder","_useState4","setSelectedAssignee","_fetchedCustomerData$","_option$customer_name","_option$customer_name2","orderOptions","_option$status_type","_option$status_type2","status_type","assigneeOptions","StyledDatePicker","DatePicker","$d","needConfirm","maxWidth","cursor","bjsDeliveryValue","_assignData$find","ReturnPagination","ReturnAfterTable","_useReturnAfterOrderD","setReturnOrderData","callApi","_useItemsPerReturnPag","fetchedReturnOrderData","Header","span","SearchIcon","CopyIcon","What3WordsIcon","xmlnsXlink","patternContentUnits","xlinkHref","FlexCallIcon","x","y","SpokePhoneIcon","CopyText","copy","text","navigator","clipboard","writeText","_x","IconContainer","RecipientName","_useOrderDetails","orderDetails","setOrderDetails","orderRecipient","showCopyIcon","_orderRecipient$recip","htmlFor","InputStyled","val","updatedOrderRecipient","autoComplete","Input","Address","_orderRecipient$addre","TextContainer","TextArea","POSTCODE_REGEX","UK","IRISH","US","Postcode","_onBlur","environment","isClientPortal","errors","setErrors","isInvalidOrder","setIsNorthSouth","prevPostcodeRef","_orderRecipient$postc","isDevelopmentOrStagingOrReleaseUK","isValidPostcode","test","hasError","callCheckPostcode","callCheckPostcodeAPI","isNorthSouth","order_customs_postcodes","content","InputContainer","prevErrors","validatePostcode","onBlur","_callee2","_orderRecipient$postc2","currentPostcode","_context2","ErrorText","css","Latitude","CustomInput","onKeyDown","readOnly","Longitude","What3words","w3wRegex","setCurrentAction","What3wordsPrefix","isValid","validateInput","w3wStr","startsWith","LocationDetails","Right","CallCustomer","ContactHome","apiContactHome","_prevOrderDetails$ord","prefix","numberPart","digitLimit","rawNumber","formattedNumber","finalHref","placement","ContactWork","apiContactWork","ContactMobile","apiContactMobile","_orderRecipient$conta","ContactEmail","emailRegex","ContactDetails","GroupedInputs","CustomerSection","CustomFormSection","FormInputs","FormSection","ConsignmentNumber","Consignment","RecipientReference","borderRadius","DepotDropdown","FormContainer","StyledSelectDropdown","inputId","openMenuOnFocus","styles","dropdownStyles","control","SelectDropdown","Droptime","DeliveryDate","orderStatus","actionDate","order","otherStatuses","released","received","scheduled","confirmed","delivered","completed","allOthersTrue","every","s","MainContainer","SlotContainer","_orderDetails$order_r","slot","_orderDetails$order_r2","_dateString","toLocaleDateString","disabledDate","startOf","Carrier","localClientData","_localStorage","localStorage","getItem","clientId","client_id","carrierOptions","carrier","selectedCarrierOption","fallbackClientName","_clientData$find","fallbackOption","selectedOption","OrderNumber","_orderDetails$order_n","ScheduleAfter","scheduleDate","vehicleTypeOptions","VehicleTypeDropdown","OrdersSection","OrderStatusNote","CustomTextArea","DeliveryInstructions","OtherInstructions","InstructionSection","convertTo12HourFormat","time24","_time24$split$map","_time24$split","split","hours","minutes","period","_minutes$toString","TimedServiceDropdown","orderStaticData","orderData","setOrderData","timesServiceId","_orderData$order_serv","timedServicesOptions","_orderStaticData$orde","order_timed_services","startTime","start_time","endTime","end_time","replaceAll","updatedServices","ServiceTypeDropdown","orderTypeId","serviceTypeOptions","DeliveryPointDropdown","deliveryPointId","deliveryPointOptions","order_delivery_point","ServiceLevel","serviceLevelId","serviceLevelOptions","order_service_levels","_option$id","RadioButtonGroup","selectedValue","required","AssemblyType","assemblyTypeOptions","order_service_list_category","_orderData$assembly_t","$isDisable","paths","1","2","3","4","5","ServiceSlider","ServiceIcon","src","serviceId","getSubPath","ServiceName","serviceName","Switch","isSelected","img","OrderServices","orderServicesOptions","order_service_list","desiredOrder","sortedServices","indexOf","toggleServices","selectedService","_extends2","service","selected","_service$type","toggle","ServicesSection","Top","DropDownContainer","RadioContainer","Bottom","AllowTracking","createdBy","createdAt","formatUtcToLocal","time","CreatedBy","OrderDetailsFooter","keysToRemovefromOrders","filteredOrderDetails","filteredPrevOrderDetails","_usePrevOrderDetails","setPrevOrderDetails","setCustomerInfo","errorState","setRecallAuditLog","setRecallOrders","setRecalling","setOrderAlertsData","setOrderStatus","callOrderAlertsApi","callOrderStatusApi","callUpdateOrderAPI","callCustomDetailsAPI","onSave","_orderDetails$order_c","customDetailsPayload","_i","_serviceKeys","_response$data$","_response$data$2","_response$data$3","alertsApiRes","orderStatusApiRes","order_customs_details","consignor_eori","packaging_type","consignee_country","commodity_code","country_of_origin","item_invoice_amount","procedure_code","ni_additional_information_codes","additional_procedure_code","additional_procedures","fromEntries","entries","Button","_errorState$w3wError","_errorState$emailErro","_errorState$homeConta","_errorState$workCOnta","_errorState$mobileErr","_errorState$postCodeE","_ref$type","minLength","_ref$direction","maxLength","StyledInput","NorthernSouthernInfoView","handleChange","_orderDetails$order_c2","_orderDetails$order_c3","_orderDetails$order_c4","ExpandedContent","orderLoading","depotDataLoading","paragraph","rows","HalfWidth","show_customs_details","setCustomerData","fetchedData","NoteType","_useSelectedData","setSelected","defaultOption","AddNote","noteText","setNoteText","noteOptions","setNoteOptions","selectedNoteType","setSelectedNoteType","orderIdLocaation","useLocation","getNoteType","_fetchedData$data","standardOption","opt","_opt$value","_options$","callAuditLogs","saveNote","audit_logs","parent_object_id","parent_module_id","parentId","module_id","note_type","module_object_id","data_dump","manual","is_private","StyledTextArea","SaveNoteContainer","textarea","NotesTableData","tableHead","alwaysVisible","tableBody","GenericAuditLogsTable","tableHeadData","_NotesTableData$","getNotes","auditLogLoadingStatus","ScrollableTableWrapper","AuditTableWrapper","column","note","PrivateIcon","dangerouslySetInnerHTML","__html","AuditLogs","Notes","_usemoduleIds","setModuleIds","setNotes","setAuditLogLoading","_useGlobalStateHitAud","recallAuditLog","setAuditLogs","apiLoading","modules","flatMap","_item$static_child_ma","static_child_mappings","_child$child_module","child_module","_child$child_module2","_child$parent_module","parent_module","_useApiHook2","NotesData","NotesLoading","updatedData","flat","Boolean","combinedArray","getTime","CardHeader","SmallButton","CustomizedFormSection","SystemCollapsedContent","Font","ChevronUp","CollapsableForm","isExpanded","setIsExpanded","CollapsedContent","collapsedContent","extraActions","CustomScrollBar","_props$thumbHeight","thumbHeight","Scrollbars","thumbSize","renderTrackHorizontal","TrackHorizontal","renderView","View","renderThumbVertical","ThumbVertical","selectedID","DynamicTable","tableColumns","tableData","useReactTable","getCoreRowModel","getSortedRowModel","getRowModel","headerGroups","getHeaderGroups","smallColumns","mediumColumns","largeColumns","noFlexColumns","TableWrapper","Table","TableHead","headerGroup","TableRow","headers","header","TableHeadData","getToggleSortingHandler","flexRender","columnDef","getContext","TableBody","TableData","row","_selectedRows$filter","_row$original","original","getVisibleCells","cell","th","td","tr","tbody","thead","RowContainer","Row","accessorKey","_props$row","enableSorting","event_code","event_description","event_notes","SystemLogs","systemLogs","StatusOptions","RouteIcon","x1","y1","x2","y2","gradientUnits","stopColor","offset","SuccessIcon","DeliveredIcon","ConfirmedIcon","Divider","strokeWidth","strokeLinecap","strokeLinejoin","Status","statusDataLoading","BoxContainer","StatusSkeletonRow","Fragment","renderIcon","Heading","StatusSkeletonItem","SkeletonItemContainer","Avatar","size","StatusBox","SkeletonDivider","GeneralHeader","Section","ActionIcon","fillOpacity","BackgroundModal","createPortal","AdditionalInformation","Rect","AdditionalInfo","p","OrderActionHeader","_props$showInformatio","showInformation","_props$infoText","infoText","Title","CrossIcon","h3","OrderActionFooter","SubmitButton","shape","colors","onSubmit","isSubmitDisabled","submitButtonTitle","OrderActionModal","_ref$minWidth","_ref$maxWidth","headerTitle","onCloseHeader","showAdditionalInfo","headerActions","submitBtnTitle","footerActions","ChargeLog","customerInfo","baseUrlSymbol","_fetchedData$data2","_order$status","_order$status2","redirectionLink","_clientData$filter$","debrief_id","textDecoration","rel","amount","Value","ReturnProductTable","_useSelectedProducts","selectedProducts","setSelectedProducts","_useProductDetails","productData","setProductData","selectedRowId","setSelectedRowId","returnOrderData","return_order_product_id","isresponse","callDeleteProduct","handleRemoveRow","prevData","deleteProduct","selectedProductId","callReturnProducts","disableCheckbox","StyleCheckbox","allProductIds","product","locationloading","_product$product_addo","_product$addon_servic","_product$addon_servic2","_product$product_cust","_product$product_cust2","_product$product_cust3","_product$product_cust4","prevSelected","product_addon_services","service_code","addon_services","addon_services_list","NSWrapper","product_customs_details","ProductTable","payloadAtom","selectedOrderId","NewReturnDropdown","_useNewReturnOrderDat","setSelectedOrderId","setPayload","idProduct","setId","new_return_order","dropdownOptions","dropdownStyle","popupClassName","notFoundContent","setPostLoading","isButtonDisabled","setIsButtonDisabled","callMoveProducts","_payload$products","sleep","ms","Promise","handleConfirmReturn","newId","MidContainer","productsData","calculateTotal","items","parseFloat","isNaN","toFixed","SectionHeader","Dimensions","Items","ProductsInfo","returnOrder","setProductsData","_useAxios2","returnOrdersData","requiredData","isExportDisabled","_returnOrdersData$dat","backgroundColor","border","boxShadow","transition","urlToDownload","_res$data","createElement","download","appendChild","click","removeChild","handleExportCSV","onMouseOver","onMouseOut","whiteSpace","letterSpacing","OrderActionsDropdown","RequiredAsterisk","AntSelect","onSelect","onSearch","selectWrapperClass","defaultValue","initialPayload","flag_type","priority","initialValue","due_datetime","assigned_to","department","updatePayload","is_deleted","legacy_reminder_id","order_data","completed_at","completed_by","flagInitialValue","resolvedValue","task_ids","allStaticData","createTaskPayload","createReminderPayload","reminderUpdatePayload","notificationLabel","notificationData","reminderNotifiData","flagByIdData","flagRefId","ReminderRefId","reminderData","resolvedModalPayload","routeDetails","orderNotifyCount","deptData","splitOrderinitialValue","return_order","force","confirmOrderDate","splitOrderPayload","resourcesDeliveryDate","useSplitOrderPayload","selectedSplitList","useSelectedSplit","useCreateTaskPayload","useCreateReminderPayload","useStaticData","useNotiifcationLabel","useTasksData","useDeptData","useReminderNotiData","useFlagById","taskUpdate","useUpdateTask","useFlagRefId","useReminderRefId","useReminderById","useUpdateReminderData","useRouteDetails","allOrderStatus","useAllOrderStatus","selectedCategoryIdAtom","selectedDocumentTypeAtom","selectedTypeAtom","selectedVisibilityAtom","setResourcesCall","useOrderNotify","DocumentTypeDropdown","setSelectedDocumentType","staticOrderData","documentOptions","_staticOrderData$reso","resource_document_type","CategoryDropdown","setSelectedCategoryId","categoryOptions","resource_category_type","VisibilityRadioButtons","selectedVisibility","setSelectedVisibility","visibilityOptions","resource_visibility_type","UploadIcon","uploadedFilesAtom","allowedFileTypes","DocFileUpload","uploadedFiles","setUploadedFiles","dragging","setDragging","fileInputRef","handleFileUpload","files","validFiles","rejectedFiles","file","isValidType","isNew","existing","lastModified","isDuplicate","DraggerContainer","onDragOver","onDragLeave","onDrop","dataTransfer","UploadButton","_fileInputRef$current","FileInput","accept","multiple","Text1","Text2","UploadedFilesContainer","FilesTitle","FilesList","FileItem","indexToRemove","updated","_","h4","_templateObject12","_templateObject13","deliveryDate","setDeliveryDate","originalDate","pickerValue","prevDate","isBefore","AddResources","setSelectedType","isFormValid","selectedCategoryId","selectedDocumentType","selectedType","resourcesDeliverDate","setOrderResources","category","baseEndpoint","callResourcesAPI","typeOptions","resource_type","handleSubmit","formData","_err$response","_err$response2","rawError","errMsg","FormData","append","fetchOrderResources","isPOD","_String","fetchedResourcesData","ContentContainer","_String2","ResourcesDeliveryDate","SplitOrderTable","orderProductDetails","_useSelectedSplit","selectedSplits","setSelectedSplit","_useSplitOrderPayload","position","_order$order_product_","selectedOrder","prevSelectedOrder","updatedSelection","order_product_type","sku","SplitOrder","_useOrderId","setOrderID","seledtedSplitOrder","setPerformAction","new_order","currentPath","ReturnAction","setCancelOrderProducts","returnActionOptions","order_product_return_action","ReturnReason","returnReasonsOptions","_orderStaticData$retu","return_reasons","reason","DeliverProductIcon","ReturnProductIcon","deliverTypeOptions","collectTypeOptions","CancelOrderTable","_useCancelOrderProduc","selectedVal","updatedList","order_product_id","product_type","isReturn","CustomSelectDropdown","optionRender","ReturnRowWrapper","StyledDropdown","CancelOrder","cancelReason","setCancelReason","cancelNotes","setCancelNotes","cancelReasonOptions","return_cancellation_reasons","callCancelApi","receivedProducts","_product$order_produc","modifiedReceivedProducts","_product$order_produc2","productsPayload","productsPayloadActions","productsPayloadValidate","apiPayload","cancelled_reason","cancelled_notes","callOrderProductsApi","callOrdersApi","TopLeft","TopRight","flexDirection","TArea","EmailAddress","_useOrderDetailsConfi","_useErrorConfirmOrder","ContactPhone","ContactTypeDropdown","contactTypeOptions","setContactTypeOptions","order_contact_type","ActionDropdown","_useSelectionAction","setSelectedAction","order_contact_action_type","dateOrderDetails","_useNotificationConfi","setConfirmedDate","_prev","toDate","formattedDate","CustomerInformation","AddressField","h2","NotesTable","setNoteLoadingStore","_i$child_module","child_id","_NotesData$data$","_NotesData$data$2","OrdersData","ORDER","OrderNotesData","allNotes","ConfirmationNotes","ContactWith","SlotAndInstructions","Slot","SendComms","orderDetailsConfirmOrder","_props$sendCommsState","sms","sendCommsState","email","setSendCommsState","_props$sendCommsState2","contactHome","_orderDetailsConfirmO","contactMobile","_orderDetailsConfirmO2","contactWork","_orderDetailsConfirmO3","contactEmail","_orderDetailsConfirmO4","showSms","SendCommsMainContainer","_props$sendCommsState3","_props$sendCommsState4","memo","ConfirmOrder","setOrderDetailsConfirmOrder","_useConfirmOrderDate","confirmOrderSendComms","setConfirmOrderSendComms","notificationCall","declineDate","confirmDeliveryDate","sendComs","noResponseApi","proposeDate","clone","executeActions","executeSendComs","_callee3","isRestrictedAction","updatedPayload","updatedOrder","_context3","showCloseIcon","SplitLayout","SplitText","HoldRow","HoldContentContainer","HoldDatePickerWrap","DatePickerWrap","SendSmsModal","VALID_UK_MOBILE_REGEX","toError","setToError","_orderDetails$order_r3","setFormData","callSendSms","handleInputChange","_e$target","rawValue","numbers","invalids","_formData$body","trimmedBody","rawContacts","validContacts","_iterator","_step","number","_createForOfIteratorHelperLoose","done","receiver","notification_type","_formData$to$trim","resize","show","SendEmailModal","initialTo","subject","setEmailError","validateEmail","alert","ChangeCustomerAccModal","_orderDetails$custome","selectedCustomerId","setSelectedCustomerId","tradingName","setTradingName","customerMappedData","handleChangeAcc","c","HoldOrderModal","setDate","holdReason","setHoldReason","onHoldReasonOptions","_orderStaticData$onho","onhold_reasons","callOnHoldApi","onSubmitHold","callUnresolvedTaskApi","newDate","UnholdOrder","fetchUnholdData","CancelationModal","CustomCancelAndCompleteAction","cancelLabel","onCancel","completeLabel","onComplete","CancelAndCompleteAction","AssigneeDropdown","_useUpdateReminderDat","reminderPayload","setReminderPayload","_useDeptData","departmentData","setDepartmentData","allUsers","setAllUsers","matched","user","legacyId","selectedDeptIds","setSelectedDeptIds","getSSOData","fetchAllSSOData","getUsersData","_usersList","usersList","users","pages","username","deptId","department_id","fName","first_names","lName","last_name","legacy_id","fetchAllPages","deptNames","dept","_fetchData$data","deptList","assignedUserIds","_reminderPayload$assi","selectedUsers","deptUsers","mergedUsersMap","Map","has","userOptions","deptLabels","updatedAssignedTo","_reminderPayload$assi2","_reminderPayload$assi3","matchedUsers","ReferenceContainer","InnerContainer","MiniContainer","Column","Left","_templateObject16","DateTimeContainer","_templateObject17","DetailedContainer","ContentsContainer","dateInput","priorityData","StatusIndicator","statusColor","getStatusColor","StatusCircleContainer","StatusCircle","ViewReminderModal","_useReminderById","reminderDataById","setReminderByIdData","reminderRefId","setReminderUpdatedData","setReminderData","fetchedReminderInitialData","callReminderApiInitial","callReminderEditAPI","handleEditReminder","cleanedPayload","apiResponse","callReminderApi","_reminderPayload$desc2","d1","d2","_reminderDataById$des","_reminderPayload$desc","toISOString","hasReminderChanged","additional","_reminderDataById$ord","_reminderDataById$ord2","OuterDiv","StyledWrapper","StyledCheckbox","RoundCheckbox","StyledSpan","LabelText","StyleContainer","showTime","disabledTime","getDisabledTime","isSame","currentHour","hour","currentMinute","minute","disabledHours","disabledMinutes","selectedHour","HeaderSection","setTasksData","flagById","_useResolvedPayload","forResolvedPayload","isModalOpen","setIsModalOpen","callFlagUpdateAPI","saveButton","unresolvedResponse","CrossWrapper","ResolveButton","StyledOverlay","TextSection","_useUpdateTask","taskPayload","setTaskPayload","TextField","ButtonsSection","staticData","orderFlagTypes","_staticData$","order_flag_types","taskTypeOptions","priorityOptions","_staticData$2","priorities","colorMatch","getPriorityOptions","selectedTypeId","_orderFlagTypes$find2","isResolved","resolvedText","resolved_at","resolved_by","Buttons","Flex","_orderFlagTypes$find","FlagsFilter","SaveDetails","Tippy","TooltipContent","arrow","ButtonWrapper","SaveButton","CancelButton","RadioButtonsSection","_useUpdateTask2","setNewValue","DropDowns","booleanValue","DetailSection","orderColumnData","_flagById$order_data","_flagById$order_data2","Detail","Ref","Order","ViewFlag","setStaticData","_useFlagById","setFlagById","selectedFlagId","flagDataById","fetchedFlagById","fetchedStaticData","task_type_id","task_priority_id","BackgroundModals","SectionsContainer","ReleaseOrder","error_traceback","ClearBookingStatus","_useLiveRecalling","UnCancelOrderTable","previous_product_type","UncancelOrder","unCancelReason","setUncancelReason","unCancelNotes","setUncancelNotes","unCancelReasonOptions","_orderStaticData$unca","uncancel_reasons","performUnCancelAction","previous_order_product_type","uncancelled_reason","uncancelled_notes","RemoveFromRoute","setAction","SplitContainer","DoubleDropdownContainer","FormRow","_ref$required","RadioButtonCheckIcon","RadioButton","_props$direction","_props$required","Fieldset","LegendContainer","Legend","RequiredText","optionId","Separator","labelStyles","$required","legend","fieldset","$direction","CreateReminderModal","selectedPriority","setPriority","_useCreateReminderPay","displayDate","setDisplayDate","selectedDeptId","setSelectedDeptId","_useState5","filteredUsers","setFilteredUsers","deptLoading","userDataLoading","_user$deptId","_Map","currentAssigned","currentAssignedUsers","mergedUsers","uniqueUsers","u","filteredAssignedTo","StyledLink","storedUserJSON","storedUserID","_parsed$user_id","parsed","user_id","matchedUser","deptMatched","_departmentData$find","newValue","_date$$d","formattedDateTime","desc","extend","utc","ReminderModal","createReminder","setExtracted","createReminderAPI","handleReminderSubmit","match","OrderModal","CreateReminder","CustomOptions","CreateTaskModal","_useCreateTaskPayload","setApiPayload","getTaskTypeOptions","parseInt","formatted","_item$type","_staticData$3","TaskModal","setLabel","createFlagAPI","handleTaskSubmit","isPrivateValue","FieldRow","CurrencySymbol","fields","OrderCharges","setCharges","weightVal","dropTime","cbm","_orderDetails$order_s","selectedTimedService","showSelectedTimedService","showCbm","showDropTime","showWeight","_selectedTimedService","_props$inputValue$ite","OrderValue","onWheel","blur","inputValue","setInputValue","_extends3","_extends4","CollectionAddOns","DisposalCharge","BaseCharges","_useChargesState","chargesState","baseChargeOptions","_props$staticData","base_charges","charge","CurrencyWrapper","_props$inputValue$bas","DeliveryAddOns","fieldsInLabelValueFormat","AdhocSection","charges","inputValues","setInputValues","_charges$adhoc_charge","adhoc_charges_description","newLabel","flex","_inputValues$item$id","handleValueChange","FailureReasonDropdown","_useFailureReason","failureReasonState","setFailureReason","setIsFailureReasonChanged","failureReasons","failure_reasons","escalationCategory","escalation_category","escalationTypes","escalation_types","faultNonFaultReasons","fault_non_fault_reasons","failureNonFaultId","_escalationCategory$f","failureFaultId","_escalationCategory$f2","failureNonFaultEscTypeId","_escalationTypes$filt","escalation_category_id","failureFaultEscTypeId","_escalationTypes$filt2","nonFaultReasons","escalation_type_id","mapReasonsToFailures","reasons","reasonIds","order_reason_id","_failureReasons$filte","failure","groupedOptions","formatGroupLabel","StatusDropdown","_useNewStatus","newStatus","setNewStatus","newStatusOptions","_orderStaticData$new_","new_status","CancellationReasonDropdown","_useOrderCancelReason","cancelationReason","setCancelationReason","cancellationReasonOptions","_orderStaticData$canc","cancellation_reasons","OrderHoldReasonDropdown","_useOrderHoldReason","orderHold","setOrderHold","holdReasonOptions","FailureContent","productdata","sortedProductData","excludedFields","totalChargesAmount","_Object$entries","_Object$entries$_i","adhocTotalCharges","_chargesState$adhoc_c","_chargesState$adhoc_c2","DropdownGrid","DropdownGroup","GroupedFields","PairGroup","SmallGroup","ContDropdownGrid","FieldGroup","wide","TextInput","SuccessContent","DateInput","CalendarIcon","radioButtonFilterOptions","RadioButtonGroups","_orderStaticData$orde2","_orderStaticData$orde3","_orderDetails$order_s2","_orderDetails$order_t","Group","OrderInfo","_useActiveTab","Middle","Options","selectedBackgroundColor","ForceDebriefSelector","onSwitchChange","initialSelectedIndex","StyledSwitch","SwitchSelector","selectedOptionValue","fontColor","optionBorderRadius","EscalationCategory","_useEscalationCategor","setEscalationCategory","failureReason","escalationCategoryOptions","escTypeId","_faultNonFaultReasons","selectProps","menuIsOpen","minHeight","&:hover","borderColor","menu","borderBottom","dropdownIndicator","menuPlacement","EscalationLevel","_useEscalationLevel","escalationLevel","setEscalationLevel","escalationLevelOptions","level","defaultLevel","EscalationReason","_useEscalationReason","escalationReasonState","setEscalationReasonState","_useIsFailureReasonCh","isFailureReasonChanged","escalationTypeId","escalationReasons","_orderStaticData$esca","escalation_reasons","escalationReasonsOptions","matchedItem","order_escalation_reasons","filteredEscReasonOptions","Escalation","OrderTemplate","routesDetails","isAllocated","isOrderStatusNote","alertVisibility","setAlertVisibility","isRouteId","onCloseAlert","alertType","StyledAlert","FlagAlert","route_name","route_lock","_routesDetails$route_","route_detail","vehicle_number","crew1","crew2","route_date","parseISO","Info","FlagTemplate","dismissFlags","setSelectedFlag","isCustomerPortal","StyledTitle","_formatUtcToLocal","_formatUtcToLocal2","subtitle","Tabs","taskData","Content","FDNotification","_useTasksData","routeId","_orderData$order_rout","setRouteDetails","fetchedUnresolvedData","unresolvedLoading","fetchRouteDetails","routesData","routesDataLoading","_routesData$data","Loader","Spinner","TabsWrapper","BaseChargeConfirmationModal","WarningIcon","setConfirmationModal","onProceed","ForceDebriefModal","_useCustomerInfo","_useOrderCustomersLis","allCustomers","setAllCustomers","setActiveTab","setDebriefStaticData","isEscalationEnabled","setIsEscalationEnabled","cancellationReason","setCancellationReason","escalationReason","setEscalationReason","setGlobalEscData","showAmountConfirmModal","setShowAmountConfirmModal","isDeleted","fetchCustomerData","_useCustomerDetails","adhocChargesFields","uuidv4","fetchAllDebriefStaticData","debriefStaticData","debriefLoading","callForceDebriefApi","createEscalation","initialValues","debriefchargesApi","failurePayload","responseForceDebrief","debrief_data","failure_data","_x2","ordersUpdateApi","ordersApiPayload","escalationCreateApi","escalationPayload","_x3","_callee4","ordersPayload","adhocCharges","chargesPayload","_context4","legacy_order_id","failure_new_status","failure_reason_id","cancelled_reason_id","hold_reason_id","failure_order_status","failureData","escalation_reason_id","escalation_level_id","ProductDiv","_item$order_product_t","ProductContainer","ContainerInner","GenericInput","What3WordsModal","setW3wError","currentWhat3Words","setWhat3Words","localW3W","setLocalW3W","localLat","setLocalLat","localLong","setLocalLong","getWhat3Words","_orderDetails$order_r4","words","_orderDetails$order_r5","_orderDetails$order_r6","updatedOrderDetails","WordsSection","WordInputWrapper","rawVal","CurrentText","CoordRow","Coordinate","OrderActions","_useCurrentAction","currentAction","setProductDetails","setProductDetailsCopy","setReminderNotifyData","_error$response","_productsData$data","_useAxios3","alertsData","_useAxios4","fetchStatusData","statusData","_useAxios5","_useAxios6","fetchedReminderData","_fetchedReminderData$","_fetchedReminderData$2","filteredReminders","reminder","filteredOverDueReminders","setItem","renderContent","Details","recipient","postcodeShow","returnActionString","_customerInfo$return_","isLoading","DetailsContainer","Typo","EscInfo","_globalEscData$","escalation_type","_globalEscData$2","bjsMenu","optionsMenuClientPortal","optionsMenu","PrintMenu","ArrowDownIcon","_ref$fill","clientPortalMenuItems","isReleased","_orderStatus$","isRouted","_orderStatus$2","isOrderOnHold","isOrderCancelled","filteredOptions","shouldExclude","menuItems","Dropdown","trigger","StyledSpace","Space","Print","gsitId","baseUrl","getBaseEndpoint","_option$toLowerCase","projectEnv","apiPath","REACT_APP_PROJECT_ENV","getBaseUrl","handleSelectChange","BjsMenuDropDown","hasNotifiedMobile","setHasNotifiedMobile","hasNotifiedEmail","setHasNotifiedEmail","isEmailId","VALID_IRISH_MOBILE_REGEX","isValidUKMobile","isValidIrishMobile","OptionsDropDown","FontContainer","ActionsMenu","DetailsFilters","routeInfoData","setOrderCount","statusVal","unholdReasons","getReasonById","order_cancellations","isHoldVisible","isCompleted","isOutstanding","isAwaitingConfirmation","isAwaitingRoute","isCancelled","isEnroute","isPreCall","isConfirmed","isPostcode","isSubcontracted","isOnSite","isFailed","_routeInfoData$order_","order_red_cross_alerts","FlagsStyle","order_info_alerts","_routeInfoData$order_2","order_warnings_alerts","_routeInfoData$order_3","order_green_check_alerts","same_postcode_orders","ReminderTemplate","dismissReminder","setReminderRefId","staus","_formatUtcToLocal3","_formatUtcToLocal4","$disable","activeTasks","closedTasks","activeReminders","closedReminders","initialNotifications","additionalNotifications","initialReminders","additionalReminders","NotifyFlag","Notification","_useTabType","setShowMoreInfo","_useReminderNotiData","reminderNotifyData","setRouteData","setActiveReminders","setCloseReminders","setActiveTasks","setCloseTasks","idOfRoute","setStatusVal","_useOrderAlertsData","orderIdParams","reminderLoading","handleTabChange","tab","fetchRoute","alertsApiLoading","t1","totalActiveCount","_activeTasks$filter","totalClosedCount","_closedTasks$filter","FlagContainer","TabsData","StyledTab","ActiveCount","ClosedCount","prevReminders","prevFlags","flags","DownloadIcon","Actions","TippyContainer","orderResources","isDownloading","setIsDownloading","urlID","matchingResource","_orderResources$data","resource","resourceUrl","handleDownload","fetch","ok","blob","urlObject","URL","createObjectURL","link","revokeObjectURL","ViewIcon","OrderView","config","top","_useGsitOrderId","setGsitOrderId","setDepotOptions","_useOrderProductsReso","_useGsitCUstomerId","GsitCUstomerId","setGsitCUstomerId","setOrderProductId","setCUstomerId","setRouteId","setSubContracterData","recallOrders","getResources","setClientData","fetchedSystemLogsData","callSystemLogsAPI","logsLoading","setFilters","fetchedDataExternal","setShouldPerformExternal","_fetchedDataExternal$","dynamicFilters","orderUpdate","_useApiHook3","fetchedStatusData","setLivePerformAction","_useApiHook4","fetchedDepotData","_requiredData$","_requiredData$2","_requiredData$3","_requiredData$4","_requiredData$0$order","_requiredData$5","_requiredData$0$order2","_requiredData$6","_requiredData$0$retur","_requiredData$7","_fetchedData$data$","_fetchedData$data$2","gsit_orderId","removeItem","callCLientApi","callEscalationApi","_useApiHook5","setActions","loadingResources","_useApiHook6","fetchedLocationData","dataLoading","shouldFetch","_fetchedLocationData$","is_default","setSystemLogsEvents","_useApiHook7","fetchedSubcontractotData","_fetchedSubcontractot","formattedData","fetchedEscalationData","escalationData","sortedEscData","docTitle","hasCalledInitialAPI","NotesContainer","TablesContainer","initialState","overviewfiltersReducerAtom","SearchType","searchText","setSearchText","_useInternalSearchTex","setDebouncedSearchText","setStatsLoading","didMountRef","handler","clearTimeout","fetchSearchedData","searchData","fetchAllData","fetchedClientData","statsDataLoading","Search","SearchInput","ClearButton","BulkFilter","Filters","statsLoading","baseCustomers","matchingClientStats","processedChildren","_customer$children","matchingChildStats","handleRedirectRTS","RTS","align","textAlign","justifyContent","renderDataRow","rowKey","isChild","_rowKey$children","handleRedirect","orders","_rowKey$orders","return_order_products","_rowKey$return_order_","_rowKey$RTS","PENDING","_rowKey$PENDING","_rowKey$CLAIMSPAID","DISPOSE","_rowKey$DISPOSE","_rowKey$REALLOCATE","_rowKey$REDEL","RECYCLE","_rowKey$RECYCLE","UNKNOWN","_rowKey$UNKNOWN","_key$children","margin","borderLeft","overflow","visibility","_key$children2","ReturnMainTable","_UsePaginationOvervie","_useItemsPerOverviewP","isScrolled","setCustomers","fetchProductStats","OrderViewQueryHandler","OutstandingTable","_useClientOutstanding","setOutstandingReturnData","_useSelectedClientPor","selectClientAll","setSelectClientAll","modifiedFilters","ReturnConfirmedTable","returnConfirmedTable","subcontracted","ConfirmedMain","HeaderWrapper","StyledFlex","HeaderTitle","Breadcrumb","BreadcrumbContainer","BreadcrumbList","subPart","javascriptStringDumpToJSON","RegExp","ReturnSearchBar","_useSearchText","setOutstandingData","statePagination","getPendingData","trimmedText","formattedPagination","_objectDestructuringEmpty","fetchStatsData","fetchStats","ReturnAfterSearchBar","_useSearchAfterText","setReturnConfirmedData","returnAfterCall","scheduled_for_return","return_completed","ClientRouterHeader","breadcrumbTitle","_ref$breadcrumbTitle","_ref$breadcrumbSubtit","breadcrumbSubtitle","breadcrumbSubPart","monthDateRange","parsedDateRange","_useStartDate","setStartDate","_useEndDate","setEndDate","isReturnCompleted","hasNoDate","formattedStart","formattedEnd","_endDate$format","_dayjs","_dayjs$format","_dayjs2","ReturnOverview","setReturnPaginationObject","_useReturnConfirmedOr","shouldShowReturnAfterTable","x_filter","RouterHeader","setActionType","setLocationData","setStatusOfOrders","setAssignData","setVisibilityData","setOrderStaticData","setClientPortal","userType","_localStorage$getItem","is_customer","str","_str$split","staticLoading","_fetchedStaticData$da","_fetchedStaticData$da2","_fetchedStaticData$da3","_fetchedStaticData$da4","return_order_status","assign_client","isViewPath","Suspense","fallback","Routes","Route","path","element","Navigate"],"mappings":"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"}
|